在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)
感谢您的帮助。
因此,问题似乎是服务接收到的SOAP消息包含意外内容。客户端构建的SOAP消息违反了服务和客户端之间的约定。对不起,如果没有更多的信息,我无法给你一个更好的答案。
与客户端发送的内容相比,了解服务的期望是关键,并通过更多的工作找到这一点。首先,我会通过使用tcpmon或fiddler等工具来捕获消息,将客户端在v7上发送Soap消息时的样子与客户端在Liberty上发送的样子进行比较。
客户端和服务是否都从WebSphere V7迁移到了Liberty?如果您迁移了服务,它是作为二进制迁移的还是从WSDL重建的?如果它是重新构建的,那么将v7中的原始WSDL与重新构建的WSDL进行比较可能会告诉您服务的期望值是如何变化的。
浏览下面的url。也许你会找到你的解决方案
当我尝试使用poster客户端访问restapi时,我也遇到了同样的错误。
http://camel.465427.n5.nabble.com/i-am-getting-exception-org-apache-cxf-interceptor-Fault-org-apache-camel-CamelContext-td5742012.html#a5742016
根本原因是——骆驼核心罐被遗漏了。将jar文件放在服务器上->lib或apache/lib