我正在尝试在Tomcat8中使用com.microsoft.sqlserver.jdbc.SQLServerXADataSource
建立连接池。虽然使用com.microsoft.sqlserver.jdbc.SQLServerDriver
一切正常,但在使用SQLServerXADataSource
时,Tomcat声称No suitable driver found
。
我确定正确的驱动程序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);
答案 0 :(得分:1)
此配置应该有效。对相应的值进行必要的更改:
<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" />
答案 1 :(得分:0)
似乎没有已知的方法在代码中执行此操作。但是,我设法使用
进行设置<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"
/>