Spring Webservice Client: не удается обработать ошибки SOAP - PullRequest
0 голосов
/ 14 марта 2012

В моем проекте я создал клиент веб-сервиса с Spring Web Services (2.0.4.RELEASE).

Шаблон webServiceTemplate определен в моей весенней конфигурации:

<bean id="marshaller" class="org.springframework.oxm.jaxb.Jaxb2Marshaller">
<bean id="wsClient" class="org.springframework.ws.client.core.WebServiceTemplate">
    <property name="marshaller" ref="marshaller" />
    <property name="unmarshaller" ref="marshaller" />
</bean>

Когда я звонюслужба (wsClient.marshalSendAndReceive(...)) и возвращает ошибку SOAP, которую клиент веб-службы не распознает.Он пытается выполнить маршалинг, и создается исключение ValidationException.

Я посмотрел исходный код веб-службы Spring.В классе WebServiceTemplate существует метод protected boolean hasFault(WebServiceConnection connection, WebServiceMessage response).Но этот метод всегда возвращает false.

Я уже проверял этот вопрос: Обработка ошибок клиента веб-службы Java Spring

Служба отправляет ответ с кодом состояния HTTP 500. Так что это не проблема.

Кто-нибудь есть идеи, как решить эту проблему?

Спасибо!

РЕДАКТИРОВАТЬ: приложение работает на Weblogic 10.3.5

1 Ответ

0 голосов
/ 23 марта 2012

Проблема была не в Spring Web Services.Наш веб-сервис вернул неверный ответ.: - /

Что я узнал из этой проблемы:

  • soapUI имеет отличный HTTP-монитор для записи трафика SOAP: http://www.soapui.org/SOAP-Recording/recording-soap-trafic.html
  • Всегда сначала проверяйте,Запросы и ответы действительны в соответствии с вашей схемой.(Это можно сделать одним щелчком мыши в HTTP-мониторе soapUI)
...