第一步配置server.xml
在server.xml文件中找到
<!-- Tomcat Root Context -->
        <!--
           <Context path="" docBase="ROOT" 
          debug="0"/>
        -->
将其改为
<!-- Tomcat Root Context -->
                <Context path="" 
          docBase="ROOT" debug="0">
                      
           <Resource name="jdbc/OracleDB" auth="Container"  
          type="javax.sql.DataSource"/>
                      
            <ResourceParams name="jdbc/OracleDB">
                      
             <parameter>
                      
               <name>user</name>
                      
               <value>holen</value>
                      
             </parameter>
                      
             <parameter>
                      
               <name>password</name>
                      
               <value>holen</value>
                      
             </parameter>
                      
             <parameter>
                      
               <name>driverClassName</name>
                      
               <value>oracle.jdbc.driver.OracleDriver</value>
                      
             </parameter>
                      
             <parameter>
                      
               <name>driverName</name>
                      
               <value>jdbc:oracle:thin:@192.168.0.50:1521:oradb</value>
                      
             </parameter>
                      
            </ResourceParams>
                      
          </Context>我按照我的配置,把他提供的192.168.0.50:1521:oradb修改成
localhost:1521:study
他的用户名holen和密码holen修改成sys/sysasdf
之后,保存

解决方案 »

  1.   

    第二步:将Oracle的JDBC驱动classes12.jar拷贝到Tomcat安装目录的common/lib下
    我于是找到9.0.1的jdbc驱动该名成classes12.jar,拷贝到相应目录
    之后我启动OracleOraHome90ManagementServer服务。然后用sysman登录到
    localhost的ManagementServer网页上有测试页,我按照他的要求
    Create table test(id varchar2(12),name varchar2(30))
    我于是建立了个表完全按照他的要求接着下面写了一个JSP文件testdb.jsp,并将testdb.jsp置于webapps/ROOT
    testdb.jsp内容如下:<%@ page contentType="text/html;charset=GBK"%>
            <%@ page import= "java.sql.* "%>
            <%@ page import= "javax.naming.* "%>
            <%
                   try{
                          
              Context initCtx = new InitialContext();
                          
              Context ctx = (Context) initCtx.lookup("java:comp/env");
                    //获取连接池对象
                          
              Object obj = (Object) ctx.lookup("jdbc/OracleDB");    
            
                    //类型转换
                          
              javax.sql.DataSource ds = (javax.sql.DataSource)obj;
                          
              Connection conn = ds.getConnection();
                          
              Statement stmt = conn.createStatement();
                          
              String strSql = " insert into test(id,name) values('00001','holen')"; 
                          
              stmt.executeUpdate(strSql);
                          
              strSql = " select id,name from test ";
                          
              ResultSet rs = stmt.executeQuery(strSql);
                        if(rs.next()){
                                 
              out.println(rs.getString(1));                 
            
                                 
              out.println(rs.getString(2));
                          
              }
                   }catch(Exception ex){
                          
              ex.printStackTrace();
                    throw new SQLException("cannot get Connection pool.");
                   }
            %>
            <hr>
    由于排版问题造成的语法错误我已经改成后,放入jsp文件
    一切都做好以后
    我兴高采烈的启动了tomcat
    打开http://localhost:18080/testdb.jsp
    (刚才为了防止冲突,把8080改成18080了)
      

  2.   

    不幸的事情发生了
    提示:
    Apache Tomcat/4.0.6 - HTTP Status 500 - Internal Server Error
    type Exception reportmessage Internal Server Errordescription The server encountered an internal error 
    (Internal Server Error) that prevented it from fulfilling this request.
    org.apache.jasper.JasperException: 
    Unable to compile class for JSPNote: sun.tools.javac.Main has been deprecated.
    D:\Tomcat\common\lib\jdbc2_0-stdext.jar(javax/sql/DataSource.java): 
    Public interface javax.sql.DataSource must be defined in a file called "DataSource.java".
    1 error, 1 warningat org.apache.jasper.compiler.Compiler.compile(Compiler.java:285)
    at org.apache.jasper.servlet.JspServlet.loadJSP(JspServlet.java:548)
    at org.apache.jasper.servlet.JspServlet$JspServletWrapper.loadIfNecessary(JspServlet.java:176)
    at org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:188)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:381)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:473)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:243)
    at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:190)
    at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
    at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246)
    at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
    at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2347)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
    at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
    at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
    at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170)
    at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:468)
    at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
    at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
    at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:1027)
    at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1125)
    at java.lang.Thread.run(Thread.java:534)为什么会这样呢?????????!!!!!!!!
    其中我有几个问题。
    1是否因为我的操作系统和他的不同,并且oracle版本不同造成的异常
    2网页说的:JNDI名设为jdbc/OracleDB
    这句话是什么意思,路经时候因为版本不同而不同呢?
    3我应该怎么样解决这样的异常呢?我看到提示
    org.apache.jasper.JasperException: 
    Unable to compile class for JSPNote: sun.tools.javac.Main has been deprecated.
    D:\Tomcat\common\lib\jdbc2_0-stdext.jar(javax/sql/DataSource.java): 
    Public interface javax.sql.DataSource must be defined in a file called "DataSource.java".
    大概意思是说
    某个东西不能编译,在什么路下缺少什么类库呢?
      

  3.   

    oracle9.1不能用classes12.jar这个驱动!
      

  4.   

    Oracle9i 9.0.1 JDBC Drivers   See the JavaDoc (2,731 kB) 
    - Readme for NT
    - Readme for Solaris 
        
      The following files are all 100% pure Java and are used with both the Thin and OCI drivers. To use the OCI driver you must also download the appropriate shared library or DLL files. 
        
      For use with JDK 1.2 and JDK 1.3 
       classes12.zip - JDBC classes( 1,081 kb)  
       ocrs12.zip - Additional RowSet support (34 kb) 
       nls_charset12.zip - Additional National Language character set support ( 11,760 kB) 
      For use with JDK 1.1 
       classes111.zip - JDBC classes ( 936 kB) 
       nls_charset11.zip - Additional National Language character set support ( 1,363 kB) 
    这么多驱动我选哪个?找不到jdk1.4的驱动程序。可选择的只有classes12.zip
      

  5.   

    没人帮助看看吗?为什么会出现
    Apache Tomcat/4.0.6 - HTTP Status 500 - Internal Server Error
    type Exception reportmessage Internal Server Errordescription The server encountered an internal error 
    (Internal Server Error) that prevented it from fulfilling this request.
    org.apache.jasper.JasperException: 
    Unable to compile class for JSPNote: sun.tools.javac.Main has been deprecated.
    D:\Tomcat\common\lib\jdbc2_0-stdext.jar(javax/sql/DataSource.java): 
    Public interface javax.sql.DataSource must be defined in a file called "DataSource.java".
    1 error, 1 warning
    这样的错误?
      

  6.   

    Public interface javax.sql.DataSource must be defined in a file called "DataSource.java".
    你东西太长,没看完。不过上面这句好像在说你没有配制数据库联接工厂。
    就是在web.xml中编辑<resource-ref>