公司的測試服務器,無厘頭的爆出以下問題: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