Caused by: java.lang.SecurityException: class "com.microsoft.sqlserver.jdbc.ISQLServerConnection$$FastClassByProxool$$3407f37e"'s signer information does not match signer information of other classes in the same package
原因是proxool的驱动包和sqljdbc4.jar的签名冲突,解决方法:
1. 将sqljdbc4.jar包的META-INF文件夹下的三个文件 MANIFEST.MF, MSFTSIG.RSA, MSFTSIG.SF 三个文件删除即可
2.使用jtds.jar驱动包,使用net.sourceforge.jtds.jdbc.Driver 驱动类并更换driver-url
转自http://blog.csdn.net/zws1987211/article/details/7449118
我使用第一种方案成功
<Resource name="jdbc/connectShmi"
auth="Container"
type="javax.sql.DataSource"
factory="org.logicalcobwebs.proxool.ProxoolDataSource"
proxool.alias="proxoolDB"
user="username"
password="password"
delegateProperties="foo=1,bar=true"
proxool.jndi-name="jndibottleconnectShmi"
proxool.driver-url="jdbc:sqlserver://192.168.1.7\SHMIName:1433;databaseName=DBName_Shmi;selectMethod=cursor;"
proxool.driver-class="com.microsoft.sqlserver.jdbc.SQLServerDriver"
proxool.house-keeping-sleep-time="900000"
proxool.maximum-active-time="5"
proxool.prototype-count="3"
proxool.statistics="1m,15m,1d"
proxool.simultaneous-build-throttle="10"
proxool.minimum-connection-count="20"
proxool.maximum-connection-count="570"
proxool.house-keeping-test-sql="select getdate()"
proxool.test-before-use="true" />
其中 select getdate() 在MSSQL Server 2005 2008中可用