公司的测试服务器,无厘头的爆出以下问题:java
[com.mchange.v2.c3p0.SQLWarnings.logAndClearWarnings()]:Origination unknown: [10228][11541][3.62.56] 在装入驱动程序时发生了安全性异常。 ERRORCODE=4223, SQLSTATE=null
com.ibm.db2.jcc.am.SqlWarning: Origination unknown: [10228][11541][3.62.56] 在装入驱动程序时发生了安全性异常。 ERRORCODE=4223, SQLSTATE=nulltomcat
Caused by: java.lang.ClassNotFoundException: sun.io.ByteToCharConverter安全
但生产的服务器,同样的应用,tomcat, jdk,却没有错。服务器
经查,是DB2jcc.jar这个驱动太旧了,用到sun.io.ByteToCharConverter 这个类仅在jdk1.7如下才有。maven
解决方案有两个:测试
1、降级jdk, 若是只是本身用就能够,公司的应用有几千亿人用,这怎么能,被否。ui
二、找个DB2jcc.jar的兼容版本。.net
去到测试服务器,tomcat/lib下,输入命令:get
java -cp ./db2jcc.jar com.ibm.db2.jcc.DB2Jcc -configuration
知道当前DB2jcc.jar的依赖jdk。经查,依赖是1.6, 那为何之前不出现,生产不出现这个错呢? 这里先无论。io
去maven仓库里拿个最新的版本,放进去,再输入命令,是支持jdk1.8。
查看命令能够参考:http://twistman.buyberry.net/ibm-db2-jdbc-driver-versions/
查看db2jcc版本:https://www-01.ibm.com/support/docview.wss?uid=swg21363866