当前位置: 首页 > 知识库问答 >
问题:

Java语言lang.例外:java。lang.VerifyError:JVMVRFY012堆栈形状不一致

华欣怡
2023-03-14

我正在websphere portal 8.5版上部署maven war文件。在离开时,我遇到以下错误----

[10/2/17 15:43:14:658 IST] 00000131 DispatcherPor E org.springframework.web.portlet.DispatcherPortlet processRequest Could not complete request
                                 javax.portlet.PortletException: java.lang.Exception: java.lang.VerifyError: JVMVRFY012 stack shape inconsistent; class=com/ibm/_jsp/_SearchCRO, method=_jspx_meth_c_forEach_0(Ljavax/servlet/jsp/tagext/JspTag;Ljavax/servlet/jsp/PageContext;[I)Z, pc=76
        at com.ibm.ws.portletcontainer.core.impl.PortletRequestDispatcherImpl.include(PortletRequestDispatcherImpl.java:127)
        at org.springframework.web.portlet.DispatcherPortlet.doRender(DispatcherPortlet.java:1137)
        at org.springframework.web.portlet.DispatcherPortlet.render(DispatcherPortlet.java:1092)
        at org.springframework.web.portlet.DispatcherPortlet.doRenderService(DispatcherPortlet.java:761)
        at org.springframework.web.portlet.FrameworkPortlet.processRequest(FrameworkPortlet.java:522)
        at org.springframework.web.portlet.FrameworkPortlet.doDispatch(FrameworkPortlet.java:470)
        at javax.portlet.GenericPortlet.render(GenericPortlet.java:222)
        at com.ibm.ws.portletcontainer.invoker.impl.PortletFilterChainImpl.doFilter(PortletFilterChainImpl.java:128)
        at com.ibm.wps.engine.el.init.AttributeCopyFilter.doFilter(AttributeCopyFilter.java:158)
        at com.ibm.ws.portletcontainer.invoker.impl.PortletFilterChainImpl.doFilter(PortletFilterChainImpl.java:120)
        at com.ibm.wps.resourceaggregator.capabilities.filter.PortletCapabilityDependencyFilter.doFilter(PortletCapabilityDependencyFilter.java:279)

谁能告诉我问题是什么以及如何解决它?

共有1个答案

柴深
2023-03-14

我在不久前尝试从IBM JRE 1.7.0 SR3升级到1.7.0 SR5时遇到了同样的错误。关于这一错误的研究一直在进行。到目前为止,我发现了以下几点:1)在SR5中,IBM引入了一种改进的字节码验证,这显然不喜欢为不同版本编译的字节码。2) 如果字节码是为/从同一版本编译的,然后进行调整(使用AspectJWeaver和类似的工具),这就是我的情况,那么IBM JVM也不喜欢这样。因此,如果您没有使用任何字节码修改,您可能会很幸运。尝试使用较新版本的JDK编译受影响的类。如果您确实在使用AspectJWeaver之类的工具,则无法帮助您。我已经在Eclipse Foundation bug跟踪系统中打开了一个bug报告,正在等待响应。

另一个建议是尝试升级到sr6之后的版本,因为它已经过时了

 类似资料:
  • 我们刚刚从IBM WebSphere7(Java 1.6)迁移到WebSphere9(Java 1.8)。我正面临长强制转换的问题,加载jsp时出现代码中断,下面的代码片段(这段代码是用jsp编写的): 下面是堆栈串, Exception:java.lang.VerifyError:JVMVRFY012堆栈形状不一致;class=com/ibm/_jsp/_tmtsstasksummary,met

  • 对于这个简单的问题,我需要找到stack1的值,如果有的话,按顺序。在堆栈中,原则是后进先出或FILO(先进先出)。使用堆栈的原因是反转数据,并以相反的顺序显示。 上面的问题让我想,如果我们使用这个原则,答案应该是:8,3,5,2。 8是从5和2开始的最后一个值,然后下一个值是3(“pop”是在“head”处删除)。接下来的两个值是5和2。这是正确的答案,还是我得到了错误的答案?

  • 问题内容: 我只知道非基元(对象)放在堆上,方法在堆栈上,但是基元变量呢? -更新 根据答案,我可以说堆可以有一个新的堆,并且给定对象可以堆吗?假设对象将具有基本变量和引用变量。 问题答案: 本地定义的基元将在堆栈中。但是,如果将原语定义为对象实例的一部分,则该原语将位于堆上。 关于更新: 对象没有自己的堆栈。在我的示例中,实际上是的每个实例的一部分。只要分配了HeapClass的实例(例如),就

  • 问题内容: 有以下代码: 并有输出: 为什么它打印八次而不是“ y”。遇到Java 时如何调用? 问题答案: 在这里您正在捉住,而不是在这种情况下您的程序会崩溃。 如果您尝试此代码(修改为添加静态计数器) 输出量 因此,它已进行了6869次(不同运行次数的更改),并打印了最后一个值。如果您只是像以前那样打印,则可能是输出被缓冲而不被刷新,因为它不是。 更新资料 在内部调用该缓冲。您不会丢失缓冲区中

  • 在这个程序中,我必须打开一个文件并将其打印到文本区域,然后确保所有括号、括号等匹配。如果括号匹配,我将在另一个文本区域中打印出来。我的问题如下:我是从文件中读取还是从第一个文本区域读取?我是在Actionlistener还是在构造函数中创建堆栈?

  • 我有一个用Java定义的,用于在工作流中导航。 我需要能够接受一个字符串,检查堆栈,看看它是否有多个出现,然后弹出元素直到该字符串的“最底部”出现。“截断”对我想做的事情的描述可能很糟糕。“pop直到我命中任意索引”可能更接近我需要的。