Tomcat8 加载错误 SQL Server Driver / SQL ServerXADataSource not found

Tomcat8 loading wrong SQL Server Driver / SQLServerXADataSource not found

我正在尝试使用 com.microsoft.sqlserver.jdbc.SQLServerXADataSourcein Tomcat8 设置连接池。虽然使用 com.microsoft.sqlserver.jdbc.SQLServerDriver 一切正常,但使用 SQLServerXADataSource 时,Tomcat 声明 No suitable driver found.

我确定正确的驱动程序 jar 在 $CATALINA\lib 中,但是我不确定它是否正确加载,因为 com.microsoft.sqlserver.jdbc.SQLServerDriver 在 [=18] 中使用和不使用该驱动程序=].也许加载了一些我找不到的其他驱动程序。

目前在 Windows 和 OS X 上出现类似问题...

有谁知道如何解决这个问题?

更新:我在代码中设置我的数据源,如下所示:

//Class.forName("com.microsoft.sqlserver.jdbc.SQLServerXADataSource");
  Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
  final ConnectionFactory                     connectionFactory         = new DriverManagerConnectionFactory(connectURI, null);
  final PoolableConnectionFactory             poolableConnectionFactory = new PoolableConnectionFactory(connectionFactory, null);
  final GenericObjectPool<PoolableConnection> connectionPool            = new GenericObjectPool<>(poolableConnectionFactory);
  poolableConnectionFactory.setPool(connectionPool);
  return new PoolingDataSource<>(connectionPool);

此配置应该有效。对相应的值进行必要的更改:

<Resource name="jdbc/mssql" 
              auth="Container"
              type="com.microsoft.sqlserver.jdbc.SQLServerXADataSource"
              factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory"
              integratedSecurity="false"
              serverName="127.0.0.1"
              databaseName="yourDbName"
              portNumber="1433"
              user="username"
              password="pwd" />

似乎没有已知 方法在代码中执行此操作。但是,我设法使用

进行了设置
<Resource name="jdbc/mssql"
          auth="Container"
          type="javax.sql.XADataSource"
          driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
          username="XXX"
          password="XXX"
          url="JDCB Connection String"
          factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
        />