WAS(Websphere) 7升级到8.5遇到的头疼Verify Error问题

从Java 6升级到Java 7时遇到的主要问题是Verify Error,这主要是由于Java 7增强了Class文件的安全性检查。文中详细介绍了两种常见的Verify Error场景:一是单元测试相关的错误,由mock引起,可通过升级Javassist库或更新JDK解决;二是OpenJPA增强实体类的Verify Error,这是一个在WAS 7迁移到WAS 8.5时出现的异常,最终发现是由于Introscope监控系统与OpenJPA的jar冲突导致。升级和使用Java 7后的字节码仪器需谨慎,尤其是在有多个仪器包的情况下。
摘要由CSDN通过智能技术生成

从Java6升级到Java7最痛恨的问题相信就是Java Verify Error了。Java7中加强了Class文件的安全性检查,结果系统上来一大堆的Verify Error。在这里说说我们系统中遇到哪些Verify Error,以及都是如何解决的:
第一种是Unit Test相关的Verify Error,由mock引起的。这里又分两种情况
1. 是由于Javassit的版本太低,导致mock class不符合Verify规范。这种可以简单通过升级javassit包版本就可以解决。可以到javassit的jira查看具体release fix的问题:https://issues.jboss.org/projects/JASSIST/versions/12320598
2. JDK bug,http://stackoverflow.com/questions/25428317/bad-init-method-call-from-inside-of-a-branch,OpenJDK最起码要7u75版本以后才没有问题。

第二种折腾了我好久麻烦的是我遇到的openjpa enhanced entity class verify error。这个错误非常的奇葩,openjpa是was8.5官方支持的jpa2.0 library。无论如何都不应该出现这个错误。这个问题却出现了我们的系统从WAS7迁移到WAS8.5上面。在本地的websphere没有问题,在服务器上一直报verify error。折腾了一个多礼拜,最后才发现这个问题是因为infrastru

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值