2012-03-14 2 views
0

В моем проекте я создал клиент webservice с Spring Web Services (2.0.4.RELEASE).Spring Webservice Клиент: не удается обработать ошибки SOAP

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 Fault клиент вебсервис не признает. Он пытается настроить маркер и исключение ValidationException.

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

Я уже проверил этот вопрос: Java Spring Web Service Client Fault Handling

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

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

Спасибо!

EDIT: приложение работает на Weblogic 10.3.5

+0

Странно. Я бы отладил метод hasFault и посмотрел, что происходит. – jddsantaella

ответ

0

Проблема не Spring Web Services. Это наш веб-сервис, возвращающий недействительный ответ. : -/

То, что я узнал от этой проблемы:

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