Tomcat,Java& SQL Server 2008 R2:无法为连接URL'null'创建类''的JDBC驱动程序

时间:2012-02-09 18:04:23

标签: java sql-server-2008 jdbc

我正在使用Tomcat和Java(通过Eclipse)和SQL Server 2008 R2

我正在

org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of 
class '' for connect URL 'null'

我也尝试部署到Tomcat 7,我得到了完全相同的错误。 (我确保在这种情况下,sqljdbc4.jar位于Tomcat的lib目录中,而不仅仅是在WAR中)

有人可以帮忙吗?谢谢!

我的代码如下:

的Server.xml

<GlobalNamingResources>
<Resource type="javax.sql.DataSource" auth="Container"
        name="jdbc/charmDB"
        factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
        driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
        url="jdbc:sqlserver://localhost:1433;databaseName=CH;
        integratedSecurity=true"
        />

Web.xml中

<resource-ref>
  <description>CH Database</description>
  <res-ref-name>jdbc/charmDB</res-ref-name>
  <res-type>javax.sql.DataSource</res-type>
  <res-auth>Container</res-auth>
</resource-ref> 

Java代码

InitialContext ic = new InitialContext();
DataSource ds = (DataSource) ic.lookup("java:comp/env/jdbc/charmDB");
Connection con = ds.getConnection();

2 个答案:

答案 0 :(得分:2)

除非link them to the application's context,否则您的Web应用程序将无法查看GlobalNamingResources中声明的资源。

否则,您可以在default context or the web application's context.

中定义资源

答案 1 :(得分:0)

我尝试了以上内容。只想添加。您也可以添加server.xml,但请确保您没有使用Resource-Params。仅将参数放在资源元素中。 如果您使用的是Linux,请确保将sqlodbc4.jar放在/ usr / share文件夹下的tomcat / lib中。