aoh*_*989 7 java sql tomcat database-connection jdbc
我已经尝试过我能找到的所有东西,如果有人能够帮助我,我会永远感激(并且在我的时间里更加自由).
基本上,我在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)
Run Code Online (Sandbox Code Playgroud)
我的tomcat\lib目录中有sqljdbc4.jar文件.我也试过把它放在我的WEB-INF/lib,甚至我的JDK lib目录中.我认为sqljdbc.jar不会起作用,因为它适用于较旧的JDK/JRE安装而不是我的.
我听说context.xml和web.xml文件对于实现这一点至关重要.
web.xml片段:
<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>
Run Code Online (Sandbox Code Playgroud)
的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"/>
Run Code Online (Sandbox Code Playgroud)
Context选项卡最终会有一个结束选项卡.
请帮忙!如果您需要更多信息,请告诉我.另外,我不确定哪个context.xml应该被修改,Tomcat目录中有2个,/ conf文件夹中有一个,webapps/appname/META-INF文件夹中有一个.对不起,如果听起来我有点像菜鸟,那是因为我!
另外,我已经看到了context.xml的url ="..."部分的许多不同示例,其中一些包括端口号.我已经尝试了几个在线的东西,但似乎没有任何工作(在网上没有任何帮助是我确切的数据环境,我认为这个应用程序在给定时间查询两个不同的DB是具有挑战性的).
思考?
在context.xml你的web应用程序的META-INF文件夹将优先于一个在/ conf目录,这是真的只是一个普通的默认值.
开源JTDS SQL Server驱动程序比微软更好.除非有一个最重要的原因,否则请使用它.将它放在tomcat/lib文件夹中的唯一原因是,如果要在server.xml中为数据库声明GlobalNamingResource,则可以将其放在应用程序的/ lib文件夹中.
JTDS的JDBC URL是: jdbc:jtds:sqlserver://hostname/databasename
JTDS的连接驱动程序类是: net.sourceforge.jtds.jdbc.Driver
| 归档时间: |
|
| 查看次数: |
30661 次 |
| 最近记录: |