【发布时间】:2012-03-09 02:10:15
【问题描述】:
我已经尝试了我能找到的所有东西,如果有人能够帮助我,我将永远感激不尽(并且在我的时间里有更多的空闲时间)。
基本上,我在 Tomcat 7.0 中出现错误(无论是在 Eclipse 中运行还是通过 startup.bat 运行时),一旦我的动态 Web 应用程序开始访问数据,就会出现这种情况:
Cannot create JDBC driver of class '' for connect URL 'null'
java.lang.NullPointerException
at sun.jdbc.odbc.JdbcOdbcDriver.getProtocol(JdbcOdbcDriver.java:507)
at sun.jdbc.odbc.JdbcOdbcDriver.knownURL(JdbcOdbcDriver.java:476)
at sun.jdbc.odbc.JdbcOdbcDriver.acceptsURL(JdbcOdbcDriver.java:307)
我的 tomcat\lib 目录中有 sqljdbc4.jar 文件。我也尝试将它放在我的 WEB-INF/lib 甚至我的 JDK lib 目录中。我不认为 sqljdbc.jar 会起作用,因为它适用于比我的旧的 JDK/JRE 安装。
我听说 context.xml 和 web.xml 文件对于让它发挥作用至关重要。
web.xml sn-p:
<resource-ref>
<description>LBI DB Connection</description>
<res-ref-name>jdbc/LBIDB</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
<res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref>
<resource-ref>
<description>OR DB Connection</description>
<res-ref-name>jdbc/ORDB</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
<res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref>
context.xml
<Context>
<!-- Default set of monitored resources -->
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<Resource name="jdbc/LBIDB" auth="Container"
type="javax.sql.DataSource" username="***" password="***" driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
url="jdbc:sqlserver:localhost;DatabaseName=YYBackOffice;SelectMethod=cursor;"
maxActive="8" maxIdle="4"/>
<Resource name="jdbc/ORDB" auth="Container"
type="javax.sql.DataSource" username="***" password="***" driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
url="jdbc:sqlserver:localhost;DatabaseName=XXBackOffice;SelectMethod=cursor;"
maxActive="8" maxIdle="4"/>
最终,上下文选项卡确实有一个关闭选项卡。
请帮忙!如果您需要更多信息,请告诉我。另外,我不确定应该修改哪个 context.xml,Tomcat 目录中有 2 个,/conf 文件夹中有一个,webapps/appname/META-INF 文件夹中有一个。对不起,如果听起来我有点像菜鸟,那是因为我是!
此外,我还看到了许多不同的 context.xml 部分的 url="..." 示例,其中一些包括端口号。我已经在网上尝试了几件事,但似乎没有任何效果(在网上没有任何帮助是我的确切数据环境,而且我认为这个应用程序在给定时间查询两个不同的数据库很有挑战性)。
想法?
【问题讨论】:
标签: java sql tomcat jdbc database-connection