Window 2008 Tomcat 7 MS SQL Server 2008R2 - 无法识别JNDI JDBC驱动程序

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Window 2008 Tomcat 7 MS SQL Server 2008R2 - 无法识别JNDI JDBC驱动程序相关的知识,希望对你有一定的参考价值。

首先,我必须说我已经找到了这个问题,我找到了几个答案,没有一个对我有用。

我使用JDK 1.7.0.10在Windows 2008 x64上运行Tomcat 7作为服务。

我正在尝试使用JDBC连接池,我在Windows 7 x86上成功运行Tomcat 6.0.36(未作为服务安装)。配置很简单:

1。将sqljdbc4.jar复制到%CATALINA_HOME% lib目录中。

2 - 。编辑%CATALINA_HOME% webapps APP_NAME META-INF context.xml:

<?xml version="1.0" encoding="UTF-8"?>
<Context antiJARLocking="true" path="/APP_NAME">
    <Resource name="jdbc/poolConexiones"
            auth="Container"
            driverclassname="com.microsoft.sqlserver.jdbc.SQLServerDriver"
            maxactive="100"
            maxidle="30"
            maxwait="10000"
            username="user"
            password="pass"
            type="javax.sql.DataSource"
            url="jdbc:sqlserver://localhost:1433;databaseName=Name">
    </Resource>
</Context>

Z-。 Едитвеб.хмл:

<resource-ref>
    <res-ref-name>jdbc/poolConexiones</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
    <res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref>

它工作正常!

但是,当我试图运行相同的应用程序时

  • a)作为服务安装的w2008 x64和tomcat(v 6和7)
  • b)作为服务安装的wXP x86和tomcat(v 6和7)

按照相同的步骤,我得到:

org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null'
    at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createConnectionFactory(BasicDataSource.java:1452)
    at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1371)
    at org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044)

然后我尝试了不同的东西:

  • 修改服务laucher上的jvm类路径: Java类路径:C: Program Files Apache Software Foundation Tomcat 7.0 lib sqljdbc4.jar; C: Program Files Apache Software Foundation Tomcat 7.0 bin bootstrap.jar; C: Program Files Apache Software Foundation Tomcat 7.0 bin tomcat-juli.jar

适用于WinXP,但它在w2008上无效。

  • 使用常规Tomcat版本(不是服务),修改Catalina.bat以便在classpath中包含sqljdbc4.jar: if“%CLASSPATH%”==“”goto emptyClasspath set“CLASSPATH =%CATALINA_HOME% lib sqljdbc4.jar;%CLASSPATH%;” :emptyClasspath set“CLASSPATH =%CATALINA_HOME% lib sqljdbc4.jar;%CLASSPATH %% CATALINA_HOME% bin bootstrap.jar” 如果不是“%CATALINA_TMPDIR%”==“”goto gotTmpdir设置“CATALINA_TMPDIR =%CATALINA_BASE% temp”:gotTmpdir

适用于WinXP,但它在w2008上无效

因此,在以不同的顺序重复几次相同的步骤并尝试使用不同版本的tomcat和Java之后,我不知道还能做什么。

请记住,此应用程序使用此配置在w7 x86和tomcat 6中通过Netbeans 6.91运行而不进行任何修改,并且它在Win XP x86上运行,编辑类路径。

那有什么问题呢?

对不起,我的英语不好。谢谢。

答案

另外需要注意的是,如果在数据库服务中运行了多个SQLServer实例,则需要通过在context.xml中提供instanceName属性来限定要连接的实例。在Tomcat 6中,context.xml位于CATALINA_HOME / conf文件夹中。

<?xml version="1.0" encoding="UTF-8"?>
<Context antiJARLocking="true" path="/APP_NAME">
   <Resource name="jdbc/poolConexiones"
        auth="Container"
        driverclassname="com.microsoft.sqlserver.jdbc.SQLServerDriver"
        maxactive="100"
        maxidle="30"
        maxwait="10000"
        username="user"
        password="pass"
        type="javax.sql.DataSource"
      url="jdbc:sqlserver://localhost:1433;instanceName=myInstance;databaseName=Name">
   </Resource>
</Context> 

以上是关于Window 2008 Tomcat 7 MS SQL Server 2008R2 - 无法识别JNDI JDBC驱动程序的主要内容,如果未能解决你的问题,请参考以下文章

Javascript - 通过 s-s-rS 2008 R2 调用时,window.open 在 IE 中不起作用

s-s-rS 2008 使用动态页脚导出到 MS Word

在Windows Server 2008上安装Tomcat 7作为服务

Window无法启动本地计算机上的tomcat 7

windows2008 apache2.4 tomcat-7多域名绑定环境配置

图表构建不正确(MS Visual Studio Reports 2008)