从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