【发布时间】:2015-12-18 10:02:14
【问题描述】:
我知道以前有人问过这个问题,但答案并没有解决我的问题。
用户选择的答案谈到了不同的方法,在建议的方法的帮助下,我的应用程序运行良好,但我想以以下方式进行。
想要将包含数据库连接详细信息的 JNDI xml 文件放入
tomcat\7.0\conf\Catalina\localhost
当我从命令提示符运行 tomcat 时,它应该与数据库建立连接。在这种情况下,我的 xml 文件名为 application.xml。从命令提示符运行应用程序给我错误
Cannot create JDBC driver of class '' for connect URL 'null' Oracle
我尝试过的步骤:
- 下面是 XML 文件创建的 JNDI 资源:
`
<?xml version="1.0" encoding="UTF-8"?>
<Context path="/application" reloadable="false">
<Logger className="org.apache.catalina.logger.FileLogger" prefix="application." suffix=".log" timestamp="true"/>
<Resource name="jdbc/application"
factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory"
auth="Container"
type="javax.sql.DataSource"
username="abc"
password="abc"
driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@<<server_address>:1522:<<sid>>"
maxActive="20" maxWait ="10000" maxIdle="10"/>
</Context>
`带有信息
- web.xml 有一个上述资源的条目为
`<resource-ref>
<description>Connection Pool</description>
<res-ref-name>jdbc/application</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
`
- 将ojdbc6.jar文件放入tomcat/lib文件夹。
我确保我没有将 ojdbc6.jar 放入 tomcat 和我的项目中,并且我使用 oracle 12c 作为数据库。
【问题讨论】:
-
您是否尝试像这样添加'//' jdbc:oracle:thin:@//:1522/>?
-
@vincent 刚刚尝试过..没有运气 :(.
-
你的 URL 中真的有
<<sid>>(字面意思)吗? -
12c 多租户?如果是可插拔数据库,则不要使用 SID。而是使用 SERVICE_NAME @hostname:1522/SERVICE_NAME。顺便说一句,请始终使用 SERVICE_NAME。总是。
-
你能在你创建连接的地方显示你的java代码吗?