Java Tomcat8加载错误的SQL Server驱动程序/SQLServerXadasource未找到
我正在尝试使用Tomcat8中的Java Tomcat8加载错误的SQL Server驱动程序/SQLServerXadasource未找到,java,sql-server,jdbc,tomcat8,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.SQLSer
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);
//Class.forName(“com.microsoft.sqlserver.jdbc.SQLServerXADataSource”);
Class.forName(“com.microsoft.sqlserver.jdbc.SQLServerDriver”);
final ConnectionFactory ConnectionFactory=new driverManager连接工厂(connectURI,null);
最终PoolableConnectionFactory PoolableConnectionFactory=新PoolableConnectionFactory(connectionFactory,null);
最终GenericObjectPool connectionPool=新的GenericObjectPool(poolableConnectionFactory);
setPool(connectionPool);
返回新的PoolgDataSource(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"
/>
如果com.microsoft.sqlserver.jdbc.SQLServerDriver
在没有驱动程序的情况下仍能工作,那么您是否正在使用任何构建工具,例如maven或gradle?如果显示您的配置设置,这也会很有帮助。@zulq我很乐意提供任何有用的信息,您指的是哪种配置<代码>catalina.属性
?是的,我正在使用maven,是的,war中还包括驱动程序sqljdbc4.jar
。但是如果Tomcat使用这个,它将能够找到SQLServerXADataSource
,不是吗?我指的是您的/META-INF/context.xml
,这是您应该定义连接的地方。下面的链接显示了一个示例:谢谢!但不幸的是,我正在寻找一个没有资源的解决方案