java - Tomcat8 加载错误的 SQL Server 驱动程序/未找到 SQLServerXADataSource

标签 java sql-server jdbc tomcat8

我正在尝试使用 Tomcat8 中的 com.microsoft.sqlserver.jdbc.SQLServerXADataSource 设置连接池。虽然使用 com.microsoft.sqlserver.jdbc.SQLServerDriver 一切正常,但在使用 SQLServerXADataSource 时,Tomcat 声称找不到合适的驱动程序

我确定正确的驱动程序 jar 在 $CATALINA\lib 中,但是我不确定它是否正确加载,如 com.microsoft.sqlserver.jdbc.SQLServerDriver lib 中使用和不使用该驱动程序。可能加载了一些我找不到的其他驱动程序。

到目前为止 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" />

关于java - Tomcat8 加载错误的 SQL Server 驱动程序/未找到 SQLServerXADataSource,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31156834/

相关文章:

kotlin - 使用 NamedParameterJdbcTemplate 为每个查询设置不同的查询超时

java - 如何根据行中的某些文本删除 JTable 中的行

java - 设置 Cloud9 IDE 来编译和运行 Java?

sql-server - CROSS APPLY 与表值函数限制性能

SQL Server - PIVOT - 两列转换为行

python - 使用 zxJDBC 调用过程时参数数量或类型错误

java - 尝试使用 Spring Boot 项目在 Java 17 中与本地 MYSQL 数据库建立 JDBC 连接时出错

java - 字节码指令 : Do I understand well

Java "for"循环填充 TextView

Sql Server Express 数据库大小限制