首页 > 解决方案 > 无法为连接 URL 'null' Tomcat 9、Oracle 12c、JDK 8 创建类 '' 的 JDBC 驱动程序,

问题描述

我有一个简单的 Web 服务,它试图打开与数据库的连接。

我正在使用 jax-ws、Oracle 12c DB、Tomcat 9、Java 8。

谁能发布正确的方法来做到这一点?

到目前为止,我已经将 ojdbc7.jar 和 ucp.jar 下载到 $TOMCAT_HOME/lib 目录中。

  1. applicationPath/META-INF/web.xml 中有什么?

现在我有以下内容:

  <resource-ref>
    <res-ref-name>jdbc/UCPPool</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
  </resource-ref>
</web-app>
  1. TOMCAT_HOME/conf/server.xml 中有什么?

现在我有以下内容:

<context docbase="demods" path="/demods" reloadable="true">
  <Resource 
       name="jdbc/UCPPool"
       auth="Container"
       factory="oracle.ucp.jdbc.PoolDataSourceImpl"
       type="oracle.ucp.jdbc.PoolDataSource"
       description="Pas testing UCP Pool in Tomcat"
       connectionFactoryClassName="oracle.jdbc.pool.OracleDataSource"
       minPoolSize="2"
       maxPoolSize="5"
       inactiveConnectionTimeout="20"
       user="test"
       password="test"
       url="jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oracleDB12c)(PORT=1563))(CONNECT_DATA=(SERVICE_NAME=PPS)))"
       connectionPoolName="UCPPool"
       validateConnectionOnBorrow="true"
       sqlForValidateConnection="select 1 from DUAL" />
 </context>
  1. TOMCAT_HOME/conf/context.xml 中有什么?

    我现在在这个文件中没有任何内容。

这是我用来设置 JDBC 连接的代码:

         Context ctx = new InitialContext();
         Context envContext = (Context) ctx.lookup("java:comp/env");
         DataSource ds  = (DataSource) envContext.lookup("jdbc/UCPPool");
         Connection conn = null;                         
         try {
             conn = ds.getConnection();
         }
         catch (SQLException e) { 
             return e.getMessage();
         }          

Web 服务返回的消息是:

"Cannot create JDBC driver of class '' for connect URL 'null'"

我究竟做错了什么?

提前致谢!

标签: jax-wstomcat9ojdbc

解决方案


您可以看一下github 示例并按照它来构建您的 Tomcat 应用程序吗?


推荐阅读