org.apache.cxf.interceptor.Fault: непредвиденный элемент / миграция WebSphere-Liberty из WebSphere-7
Код, который работает в WebSphere-7, выдает следующую ошибку в WebSphere Liberty:
javax.xml.ws.soap.SOAPFaultException: неожиданный элемент { http://example.com/service/Quoting/v2} SubmitRateScenarioResponse найден. Ожидаемый { http://example.com/esb/header/v3} ESBHeader. в org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:156)
Вызвано: org.apache.cxf.interceptor.Fault: Обнаружен непредвиденный элемент { http://example.com/service/Quoting/v2} SubmitRateScenarioResponse. Ожидаемый { http://example.com/esb/header/v3} ESBHeader. в org.apache.cxf.interceptor.DocLiteralInInterceptor.validatePart(DocLiteralInInterceptor.java:275)
Любая помощь приветствуется.
1 ответ
Таким образом, проблема заключается в том, что сообщение SOAP, полученное службой, содержит неожиданное содержимое. Клиент создает сообщение SOAP, которое нарушает договор между Сервисом и Клиентом. Извините, я не могу дать вам лучший ответ без дополнительной информации.
Понимание того, что ожидает Служба по сравнению с тем, что отправляет клиент, является ключевым моментом, и обнаружение, что это было бы возможно с некоторой дополнительной работой. Для начала я бы сравнил, как выглядит Soap Message при отправке клиентом на v7 с тем, что клиент отправляет на Liberty, используя инструмент, подобный tcpmon или fiddler, для захвата сообщения.
Переносились ли клиент и служба в Liberty из WebSphere V7? Если вы перенесли Сервис, был ли он перенесен как двоичный файл или перестроен из WSDL? Если он был перестроен, сравнение исходного WSDL из v7 с перестроенным WSDL может рассказать вам о том, как изменились ожидания Службы.
Пройдите по ссылке ниже. может быть ты найдешь свое решение
У меня была такая же ошибка, когда я попытался нажать rest api с помощью клиента почтальона.
Основная причина - пропущена банка с верблюжьей сердцевиной. поместите файл jar на server->lib или apache/lib