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

获取JVMVRFY012堆栈形状不一致;class=com/sun/xml/消息传递/saaj/皂/SOAPDocumentImpl

锺离晗昱
2023-03-14

我正在进行升级项目,将java web应用程序从websphere application server 8.5中的java 6移动到java 8。

我们正在使用许多SOAP web服务调用与其他内部系统和供应商系统进行交互。所以现在,每当系统尝试创建SOAP请求时,我们都会收到下面的错误消息

JVMVRFY012 stack shape inconsistent; class=com/sun/xml/messaging/saaj/soap/SOAPDocumentImpl, method=createDocumentFragment()Lorg/w3c/dom/DocumentFragment;, pc=5; 

签名com/sun/xml/messaging/saaj/soap/SOAPDocumentFragment中的类型不匹配,html" target="_blank">参数0:(Lcom/sun/org/apache/xerces/internal/dom/CoreDocumentImpl;)V与异常详细信息不匹配:位置:com/sun/xml/messaging/saaj/soap/SOAPDocumentImpl。createDocumentFragment()Lorg/w3c/dom/DocumentFragment@5: jbinvoke特殊原因:类型“com/sun/xml/messaging/saaj/soap/SOAPDocumentImpl”(当前帧,堆栈[2])不能分配给“com/sun/org/apache/xerces/internal/dom/CoreDocumentImpl”当前帧:bci:@5个标志:{}局部变量:{“com/sun/xml/messaaj/SOAPDocumentImpl”}堆栈:{“未初始化”、“未初始化”、“com/sun/xml/messaaj/SOAPDocumentImpl”},

作为一种解决方法,我们尝试将jar版本更新为Saaj\u impl-1.3.27,但仍然出现错误。

共有1个答案

狄河
2023-03-14

作为一种即兴猜测,这个问题似乎是SAAJ RI和Axis2之间的DOM混淆。您的应用程序是否捆绑了自己的Web服务实现,包括SAAJ?您提到将SAAJ更新为1.3.27,错误中提到了SAAJ RI,因此,如果您的应用程序有自己的Web服务实现,则需要禁用WebSphere提供的Web服务实现:

https://www-01.ibm.com/support/knowledgecenter/SSAW57_8.5.5/com.ibm.websphere.nd.doc/ae/twbs_thirdparty.html.

您可以尝试设置以下系统属性:

-Djavax.xml.soap.SOAPFactory=com.sun.xml.internal.messaging.saaj.soap.ver1_1.SOAPFactory1_1Impl 
-Djavax.xml.soap.SOAPConnectionFactory=com.sun.xml.internal.messaging.saaj.client.p2p.HttpSOAPConnectionFactory 
-Djavax.xml.soap.MetaFactory=com.sun.xml.internal.messaging.saaj.soap.SAAJMetaFactoryImpl
-Dcom.ibm.websphere.webservices.DisableIBMJAXWSEngine=true 

这些属性就是一个示例,SAAJ RI的完全限定名可能会根据您使用的SAAJ版本而更改。

如果您的应用程序应该使用WebSphere Web Services Engine,您能告诉我您使用的是哪个版本的Java8吗?

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

  • 我正在websphere portal 8.5版上部署maven war文件。在离开时,我遇到以下错误---- 谁能告诉我问题是什么以及如何解决它?

  • 7.3.3 堆栈传递参数 堆栈是一个特殊的数据结构,它通常是用来保存程序的返回地址。当用它来传递参数时,势必会造成数据和返回地址混合在一起的局面,用起来要特别仔细。 具体做法如下: (1)、当用堆栈传递入口参数时,要在调用子程序前把有关参数依次压栈,子程序从堆栈中取到入口参数; (2)、当用堆栈传递出口参数时,要在子程序返回前,把有关参数依次压栈(这里还需要做点额外操作,要保证返回地址一定在栈顶)

  • 因此,我试图在Jasmin中创建一个简单的for循环,每次hello world通过该循环时,它都会打印出来。问题是,每当我试图通过添加一个来增加它时,我会得到这样的错误:“错误:无法初始化主类测试由:java.lang.verifyerror:(class:test,method:main signature:([ljava/lang/string;)V)不一致的堆栈高度1!=2”当我不试图添加

  • 由于内容脚本在网页而不是扩展程序的上下文中运行,因此它们通常需要某种与扩展程序其余部分进行通信的方式。例如,RSS 阅读器扩展程序可以使用内容脚本来检测页面上 RSS 摘要的存在,然后通知后台页面以显示该页面的操作图标。 扩展及其内容脚本之间的通信使用消息传递来实现。任何一方都可以监听从另一端发送的消息,并在同一通道上进行响应。消息可以包含任何有效的 JSON 对象(空,布尔值,数字,字符串,数组

  • ms tcp nodelay 描述: 在信差的 TCP 会话上禁用 nagle 算法。 类型: Boolean 是否必需: No 默认值: true ms initial backoff 描述: 出错时重连的初始等待时间。 类型: Double 是否必需: No 默认值: .2 ms max backoff 描述: 出错重连时等待的最大时间。 类型: Double 是否必需: No 默认值: 15