java.lang.VerifyError:JVMVRFY012堆栈形状不一致; [英] java.lang.VerifyError: JVMVRFY012 stack shape inconsistent;

查看:2693
本文介绍了java.lang.VerifyError:JVMVRFY012堆栈形状不一致;的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在WAS 8.5.5中部署Maven项目时出现以下错误。

I am getting the following error while deploying a Maven project in WAS 8.5.5.

我在WAS中安装了JDK 1.6和1.7。

I have installed JDK 1.6 and 1.7 in WAS.


错误500:org.springframework.web.util.NestedServletException:处理程序处理失败;嵌套异常是java.lang.VerifyError:JVMVRFY012堆栈形状不一致; class = com / xyz / simtools / savings / jaxb / SavingsInput_JAXB_Deserialization_Stub,method = write(ILjava / lang / Object;)V,pc = 356

Error 500: org.springframework.web.util.NestedServletException: Handler processing failed; nested exception is java.lang.VerifyError: JVMVRFY012 stack shape inconsistent; class=com/xyz/simtools/savings/jaxb/SavingsInput_JAXB_Deserialization_Stub, method=write(ILjava/lang/Object;)V, pc=356

我注意到的事情:


  1. 在Tomcat中,它工作正常

  2. 有一些修复在IBM JDK中根据这个但它仍然不适合我

  1. In Tomcat, it's working fine
  2. There was some fix for this in IBM JDK according to this but it is still not working for me

我尝试过的事情:


  1. 尝试使用WAS中的两个JDK版本。

  2. 阅读链接

  3. 在1.5和1.7中编译我的项目并尝试部署

我错过了什么?我需要处理的其他任何变化吗?

Am I missing something? Any other changes which I need to take care of?

推荐答案

我有同样的问题,但在我的情况下问题和修复是另一回事。

I had the same issue, but in my case the problem and the fix was a different thing.

(可能)原因: 我对问题原因的判断是同一API的两个版本实现之间的冲突。在设计时,在我的工作站(根据我所在地的既定规则),我的IDE使用IBM JDK实现的SAAJ 1.4来编译我的Web服务类。

(Possible) cause: My verdict regarding the cause of the problem was the conflict between two version implementations of the same API. At the design time, at my workstation (according established rules of the place I am), my IDE was using the SAAJ 1.4 of IBM JDK implementation to compile my Web Services classes.

IBM\jdk\jre\lib\rt.jar/com\sun\xml\internal\messaging\saaj\soap\SOAPDocumentImpl.class

运行时,使用Tomee(Tomcat)1.7.3,在整个路径中加载了相同的类:

At runtime, using Tomee(Tomcat) 1.7.3, the same class were being loaded throughout the path:

$TOMEE_HOME\lib\saaj-impl-1.3.18.jar/com\sun\xml\internal\messaging\saaj\soap\SOAPDocumentImpl.class

这导致Web服务执行时出现验证错误:

And this was causing the verify error at the time the Web Services were executed:


  • java.lang.VerifyError:JVMVRFY012堆栈形状不一致;

  • (葡萄牙语):
    java.lang.VerifyError:JVMVRFY012 formato de pilha不一致;

解决方法 :只需采取saaj-impl-1.3.18 .jar离开Tomee的lib文件夹(移动它)。
由于Tomee / Tomcat使用与我的IDE相同的IBM JDK,我发现冲突可能是因为在Tomee的lib文件夹中本地化的saaj-impl-1.3.18.jar。离开那里,让Tomee在运行时使用在编译时使用的相同实现(IBM JDK)。

Workaround: Simply, take the saaj-impl-1.3.18.jar out of the Tomee's lib folder (move it). As the Tomee/Tomcat was using the same IBM JDK as my IDE, I found out that the conflict could be because of the saaj-impl-1.3.18.jar localized at the Tomee's lib folder. Moving out of there, make Tomee use the same implementation at runtime that were used at compile time (IBM JDK).

请注意我在开发工作站遇到此问题,不是开发/生产(主机)环境。由于工作站配置文件的规则,这是我发现对我有用的解决方法。

Pay attention that I had this problem at my development workstation, is not a developlment/production(host) environment. Because of the rules of the workstation profile, this is the workaround that I found out works to me.

这篇关于java.lang.VerifyError:JVMVRFY012堆栈形状不一致;的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆