使用c3p0连接DB2数据,在装入驱动程序时发生了安全性异常
@JFinal 你好,想跟你请教个问题:
使用Jfinal_Weixin的框架,需要与DB2进行连接查询功能。启动进行连接时,会出现以下错误:
[INFO]-[Thread: com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#1]-[com.mchange.v2.c3p0.SQLWarnings.logAndClearWarnings()]: Origination unknown: [10228][11541][3.62.56] 在装入驱动程序时发生了安全性异常。 ERRORCODE=4223, SQLSTATE=nullcom.ibm.db2.jcc.am.SqlWarning: Origination unknown: [10228][11541][3.62.56] 在装入驱动程序时发生了安全性异常。 ERRORCODE=4223, SQLSTATE=null
at com.ibm.db2.jcc.am.fd.b(fd.java:207)
at com.ibm.db2.jcc.am.fd.b(fd.java:258)
at com.ibm.db2.jcc.am.ib.a(ib.java:893)
at com.ibm.db2.jcc.am.jb.a(jb.java:579)
at com.ibm.db2.jcc.am.jb.<init>(jb.java:560)
at com.ibm.db2.jcc.t4.b.<init>(b.java:316)
at com.ibm.db2.jcc. DB2SimpleDataSource.getConnection(DB2SimpleDataSource.java:214)
at com.ibm.db2.jcc.DB2Driver.connect(DB2Driver.java:460)
at com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:134)
at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:182)
at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:171)
at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.acquireResource(C3P0PooledConnectionPool.java:137)
at com.mchange.v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java:1014)
at com.mchange.v2.resourcepool.BasicResourcePool.access$800(BasicResourcePool.java:32)
at com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1810)
at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547)
Caused by: java.security.PrivilegedActionException: java.lang.ClassNotFoundException: sun.io.ByteToCharConverter
at java.security.AccessController.doPrivileged(Native Method)
at com.ibm.db2.jcc.am.ib.s(ib.java:879)
at com.ibm.db2.jcc.am.ib.<clinit>(ib.java:513)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at com.ibm.db2.jcc.DB2BaseDataSource.class$(DB2BaseDataSource.java:265)
at com.ibm.db2.jcc.DB2BaseDataSource.<clinit>(DB2BaseDataSource.java:265)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at com.ibm.db2.jcc.DB2Driver.class$(DB2Driver.java:68)
at com.ibm.db2.jcc.DB2Driver.<clinit>(DB2Driver.java:71)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at com.mchange.v2.c3p0.DriverManagerDataSource.ensureDriverLoaded(DriverManagerDataSource.java:100)
at com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:132)
... 7 more
Caused by: java.lang.ClassNotFoundException: sun.io.ByteToCharConverter
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:430)
at org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:383)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at com.ibm.db2.jcc.am.jg.run(jg.java:19)
... 22 more
请教一下大家,这个问题是什么原因,并且如何解决,谢谢!!~
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(7)
楼上的大哥,[org.hibernate.engine.jdbc.spi.SqlExceptionHelper] Origination unknown: [10228][11541][4.13.127] 在装入驱动程序时发生了安全性异常。 ERRORCODE=4223, SQLSTATE=null ,我这里db2数据库是9.7
我用的jar的版本 :
<dependency>
<groupId>com.ibm.db2</groupId>
<artifactId>db2jcc</artifactId>
<version>10.1</version>
</dependency>
数据库可以正常链接,但是在日志窗口一直会报这个警告错误?大佬谁知道怎么回事?
詹哥分析的有道理。确实应该是jar包的问题
不是哦,我连接的另一台服务器的数据库,不是本地的。
你的连接 配置的是localhost还是127.0.0.1?我用localhost的时候回报错,你试一下~
你好,请问这个跟db2jcc.jar包有关系吗?我使用的是Jre1.8版本的,发现charsets.jar下面sun.io包里没有ByteToCharConverter。难道是java的版本不对吗?
注意看这句: Caused by: java.security.PrivilegedActionException: java.lang.ClassNotFoundException
但凡是 ClassNotFoundException 多数是缺少 jar 包或者 jar 包版本不对的原因。
我去找过,jre1.8下面的确没有sun.io.ByteToCharConverter这个包。但是因为其他人都可以正常连接,所以我怀疑是jdk版本的问题,因此找了一下关于DB2与JDBC的一个关系,如下链接
http://www-01.ibm.com/support/knowledgecenter/#!/SSEPGG_10.5.0/com.ibm.db2.luw.qb.server.doc/doc/r0011932.html?cp=SSEPGG_10.5.0%2F2-0-1-1
目前JDBC的驱动仅支持到1.7版本,我换了jre1.7后,就可以整正常连接。谢谢大家!特别谢谢詹哥的指导~!