首页 > 解决方案 > org.apache.cxf.interceptor.Fault:意外元素/来自 WebSphere-7 的 WebSphere-Liberty 迁移

问题描述

在 WebSphere-7 中运行的代码在 WebSphere Liberty 中给出了以下错误:

        javax.xml.ws.soap.SOAPFaultException: Unexpected element {http://example.com/service/Quoting/v2}SubmitRateScenarioResponse found.
       Expected {http://example.com/esb/header/v3}ESBHeader.
            at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:156)

        Caused by: 
        org.apache.cxf.interceptor.Fault: Unexpected element {http://example.com/service/Quoting/v2}SubmitRateScenarioResponse found.   
Expected {http://example.com/esb/header/v3}ESBHeader.
            at org.apache.cxf.interceptor.DocLiteralInInterceptor.validatePart(DocLiteralInInterceptor.java:275)

任何帮助表示赞赏。

标签: web-serviceswebspherejax-wswebsphere-libertywebsphere-7

解决方案


因此,问题似乎是服务接收到的 SOAP 消息包含意外内容。客户端正在构建违反服务和客户端之间合同的 SOAP 消息。抱歉,如果没有更多信息,我无法为您提供更好的答案。

与客户端发送的内容相比,了解服务的期望是关键,并通过更多的工作来发现这一点。首先,我将使用 tcpmon 或 fiddler 之类的工具捕获消息,将客户端在 v7 上发送的 Soap 消息与客户端在 Liberty 上发送的内容进行比较。

客户端和服务是否都从 WebSphere V7 迁移到 Liberty?如果您迁移了服务,它是作为二进制文件迁移的还是从 WSDL 重建的?如果它被重新构建,将 v7 中的原始 WSDL 与重新构建的 WSDL 进行比较可能会告诉您有关服务的期望发生了什么变化的一些信息。


推荐阅读