使用c3p0连接DB2数据,在装入驱动程序时发生了安全性异常

33号小人物 发布于 2015/05/13 09:56
阅读 6K+
收藏 0

@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=null
com.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

 

请教一下大家,这个问题是什么原因,并且如何解决,谢谢!!~

以下是问题补充:

@33号小人物:BD2 的版本是V9.7 ,我使用的JDBC驱动是db2jcc.jar和db2jcc_license_su.jar。请问是跟这两个驱动有关吗?但是我使用了db2jcc4.jar也会报错,内容就是跟没有使用db2jcc.jar一样。 (2015/05/13 10:52)
@33号小人物:db2jcc db2jcc4 db2jcc_license_su 都是从DB2服务器上的java目录上下载下来的。 (2015/05/13 10:56)
@33号小人物:上面写错的了,是db2jcc_license_cu (2015/05/13 11:53)
加载中
0
33号小人物
33号小人物

我去找过,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后,就可以整正常连接。谢谢大家!特别谢谢詹哥的指导~!

0
JFinal
JFinal

    注意看这句: Caused by: java.security.PrivilegedActionException: java.lang.ClassNotFoundException

    但凡是 ClassNotFoundException 多数是缺少 jar 包或者 jar 包版本不对的原因。

33号小人物
33号小人物
你好,请问这个跟db2jcc.jar包有关系吗?我使用的是Jre1.8版本的,发现charsets.jar下面sun.io包里没有ByteToCharConverter。难道是java的版本不对吗?
0
zhulint
zhulint
你的连接 配置的是localhost还是127.0.0.1?我用localhost的时候回报错,你试一下~
33号小人物
33号小人物
不是哦,我连接的另一台服务器的数据库,不是本地的。
0
zhulint
zhulint

詹哥分析的有道理。确实应该是jar包的问题

0
敏哥喜欢吃辣条
敏哥喜欢吃辣条

楼上的大哥,[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>

数据库可以正常链接,但是在日志窗口一直会报这个警告错误?大佬谁知道怎么回事?

返回顶部
顶部