web-services - 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)
任何帮助表示赞赏。
解决方案
因此,问题似乎是服务接收到的 SOAP 消息包含意外内容。客户端正在构建违反服务和客户端之间合同的 SOAP 消息。抱歉,如果没有更多信息,我无法为您提供更好的答案。
与客户端发送的内容相比,了解服务的期望是关键,并通过更多的工作来发现这一点。首先,我将使用 tcpmon 或 fiddler 之类的工具捕获消息,将客户端在 v7 上发送的 Soap 消息与客户端在 Liberty 上发送的内容进行比较。
客户端和服务是否都从 WebSphere V7 迁移到 Liberty?如果您迁移了服务,它是作为二进制文件迁移的还是从 WSDL 重建的?如果它被重新构建,将 v7 中的原始 WSDL 与重新构建的 WSDL 进行比较可能会告诉您有关服务的期望发生了什么变化的一些信息。
推荐阅读
- sql - 如何将 JSON 文件及其所有密钥加载到 Postgres 中?
- swiftui - GraphicalDatePickerStyle() 是十二月文本和时间压缩错误
- azure - 如何将 azurerm_resource_group_template_deployment 用于 azure 预算资源,但忽略开始和结束日期的更改?
- c# - 在 Linux 上使用 Asp.net 核心应用程序访问外部项目文件夹
- python-3.x - 检查树是否对称(关于其中心)可能不使用类
- c - 为什么相同的 argv[] 在两个线程中打印两次?
- rust - 如何在 rust 中声明一个公共静态指针?
- awk - 与 awk 匹配模式后的断线
- javascript - 为使用谷歌应用脚本和网络应用表单上传的所有文件创建一个文件夹
- collections - 如何在 UML 图中描述有序集合元素的索引?