程序布在WebSphere6.1上连接数据库报错

zhang1x1 2009-11-30 09:18:30
加精
程序在tomcat上跑是正常的,但是布在WebSphere6.1以后连接数据库报错
R Exception in thread "Timer-7" java.lang.VerifyError: class loading constraint violated (class: com/ibm/db2/jcc/b/p method: a(Lcom/ibm/db2/jcc/b/pc;Lcom/ibm/db2/jcc/b/lg;)V) at pc: 0
[09-11-26 14:42:59:790 CST] 00000190 SystemErr R at java.lang.J9VMInternals.verifyImpl(Native Method)
[09-11-26 14:42:59:790 CST] 00000190 SystemErr R at java.lang.J9VMInternals.verify(J9VMInternals.java:59)
[09-11-26 14:42:59:790 CST] 00000190 SystemErr R at java.lang.J9VMInternals.verify(J9VMInternals.java:57)
[09-11-26 14:42:59:790 CST] 00000190 SystemErr R at java.lang.J9VMInternals.initialize(J9VMInternals.java:120)
[09-11-26 14:42:59:790 CST] 00000190 SystemErr R at com.ibm.db2.jcc.DB2Driver.connect(DB2Driver.java:165)
[09-11-26 14:42:59:790 CST] 00000190 SystemErr R at java.sql.DriverManager.getConnection(DriverManager.java:562)
[09-11-26 14:42:59:790 CST] 00000190 SystemErr R at java.sql.DriverManager.getConnection(DriverManager.java:186)
[09-11-26 14:42:59:790 CST] 00000190 SystemErr R at com.icss.ctobacco.share.util.DBUtil.getConnByurl(DBUtil.java:106)
[09-11-26 14:42:59:790 CST] 00000190 SystemErr R at com.icss.ctobacco.share.util.AutoFun.getData(AutoFun.java:53)
[09-11-26 14:42:59:790 CST] 00000190 SystemErr R at com.icss.ctobacco.share.util.AutoFun.run(AutoFun.java:38)
[09-11-26 14:42:59:790 CST] 00000190 SystemErr R at java.util.TimerThread.mainLoop(Timer.java:527)
[09-11-26 14:42:59:790 CST] 00000190 SystemErr R at java.util.TimerThread.run(Timer.java:477)
应该是驱动的问题 我的数据库版本是db2 8.1 哪位大侠遇到这样的问题怎么解决的 麻烦告知
...全文
2150 57 打赏 收藏 转发到动态 举报
写回复
用AI写文章
57 条回复
切换为时间正序
请发表友善的回复…
发表回复
青火 2011-05-25
  • 打赏
  • 举报
回复
顶~~~
bk2oo8 2011-05-22
  • 打赏
  • 举报
回复
不知道
humanity 2011-05-18
  • 打赏
  • 举报
回复
IBM 网站上那个链接中程序在 web-inf/lib 下添加了 JDBC Driver,所以出问题了,IBM 给出的方案是把驱动删除掉就正常了。我觉得可以试一下,在 IBM WebSphere Console web 控制台上添加 JDBC Provider 时指定 JDBC 驱动 jar 而不是让应用程序带上它,这一点本来就在 J2EE 1.2 升级到 J2EE 1.3 时已经不推荐应用程序来管理像数据库连接这样的资源而应该由服务器来管理,既然由服务器管理那么应用程序自己就不应该自带 JDBC 驱动了。

我猜测这个问题是由于类加载器层次引起的问题,因为某个地方已经加载了一个 JDBC 驱动用到的类,然后在应用程序的类加载器中也加载了一个,但是不同的类加载器加载的东西却因为某些原因不能共存。比如下面的原因:

1. Jar 中的 MANIFEST.MF 中已经包括了 Sealed: true,它表示这个 jar 中的包 com.A, com.B 之类的类如果用到其它 com.A, com.B 包中的类的话,那么所有的 com.A 和 com.B 包类的类必须全部在同一个 jar 中(暂时我是这个理解的)。Sealed: true + 数字签名就可以用来防篡改,任何将 jar 中的某个类反编译后替换原来的类的行为都将被 JVM 拒绝加载,因为我们没有原始合法的数字证书。这个问题常见于 Spring 之类使用了 CGLIB AOP 处理中临时创建类,它与原来的类在同一个包中,但是原来的类所在的 jar 是 Sealed: true 并且带了数字签名的,我们把一个临时的类(与原来在同一个包中)放进去时,JVM 就会拒绝加载这个类,因为这属于篡改行为(因为这个临时的类不是这个 jar 提供的,也就是说不是原来厂商提供的)。





crazy_xiaoxiao 2011-05-17
  • 打赏
  • 举报
回复
解决了么 是JDK版本问题么????????????
xiezhenxiang 2010-09-17
  • 打赏
  • 举报
回复
如果确定websphere的版本是6。1的话,它可以支持JDK1。5,程序用JDK1。5编译,那是可以的,有没有在websphere上建了数据库连接池,选建个连接池,测试下,可不可以。
humanity 2010-08-01
  • 打赏
  • 举报
回复
这样的问题通常能在 ibm.com 上找到:

Google 关键字:at java.lang.J9VMInternals.verifyImpl site:ibm.com

参考这个文章
http://publib.boulder.ibm.com/infocenter/tivihelp/v3r1/index.jsp?topic=/com.ibm.tivoli.itws.doc_8.5.1/tdwcdbconnerr.htm
bauercui 2010-07-31
  • 打赏
  • 举报
回复
看着好像是加载驱动的问题,是jvm的class loader报错,从这个方面找一下
雕虫大计 2010-07-26
  • 打赏
  • 举报
回复
你用jdk1.5编译出来的class文件,怎么能到jdk1.4上执行呢。修过环境变量,把path中的jdk.15对应的路径放在最前面。
bauercui 2010-07-24
  • 打赏
  • 举报
回复
对,像jdk版本问题,应该不是连接池配置或者dbcp配置问题
y541397839 2010-03-30
  • 打赏
  • 举报
回复
确定是jdk问题!
37楼正解!
y541397839 2010-03-30
  • 打赏
  • 举报
回复
确定是jdk问题!
37楼正解!
y541397839 2010-03-30
  • 打赏
  • 举报
回复
确定是jdk问题!
37楼正解!
zhzzh521 2010-03-29
  • 打赏
  • 举报
回复
正在学习中……
adnin2010 2010-03-02
  • 打赏
  • 举报
回复
学习.
adnin2010 2010-03-02
  • 打赏
  • 举报
回复
学习.
wanrongweixiao 2010-02-05
  • 打赏
  • 举报
回复
WebSphere6.1使用的JDK是1.5的,换你数据库里面的驱动
y541397839 2010-02-04
  • 打赏
  • 举报
回复
学习
cqhweb 2010-01-22
  • 打赏
  • 举报
回复
学习....
gissdl 2010-01-16
  • 打赏
  • 举报
回复
应该是jdk版本的问题;
websphere6.0支持jdk1.4,
6.1支持jdk1.5,
7.0支持1.6

abit2010 2010-01-11
  • 打赏
  • 举报
回复
应该是数据库驱动的问题吧,用最新的DB2驱动。

支持
加载更多回复(34)

2,633

社区成员

发帖
与我相关
我的任务
社区描述
WebSphere 是 IBM 的软件平台。它包含了编写、运行和监视全天候的工业强度的随需应变 Web 应用程序和跨平台、跨产品解决方案所需要的整个中间件基础设施,如服务器、服务和工具。
社区管理员
  • WebSphere社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧