在 liberty 服务器中部署应用程序时出现以下错误。 看来 drools 与 java 1.8 存在兼容性问题。我无法更改我的 drools/mvel jar 版本,因为它需要对 drools 进行重大更改。在其中一个论坛中,我已阅读使用更新的 ecj 版本 jar 因此我已将 ecj jar 更新到 4.5.1 版本,但即使收到错误。此解决方案适用于 tomcat 和 WAS 服务器,没有任何 java 1.8 迁移问题
Caused by: java.lang.VerifyError: (class: ASMAccessorImpl_7258891721511957152780, method: getKnownEgressType signature: ()Ljava/lang/Class;) Illegal type in constant pool.
任何人都可以告诉我们需要做什么来解决上述错误
最佳答案
通常,当使用使用一种 JDK 编译并使用另一种 JDK 运行的 .class 文件(例如使用 IBM JDK 7 编译并使用 Oracle JDK 8 运行)时,我会发现此问题发生。
要解决VerifyError问题,您可以将-noverify
添加到您的JVM_ARGS(通过jvm.options)。
对于更详细的分析,了解以下内容会很有帮助:
- 错误的完整堆栈跟踪
- 您运行的 JDK 是什么
- 您正在使用的 WAS Liberty 版本
关于java - 使用 java 1.8 的 Liberty 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47553052/