Как получить код ошибки от SoapClient: JBOSS ESB

#jboss-esb

#jboss-esb

Вопрос:

Я использую org.jboss.soa.esb.actions.soap.SoapClient в моем ESB. И я пытаюсь получить код состояния HTTP или любое исключение, если SoapClient не удается отправить запрос. Здесь может быть множество причин для неудачной отправки, например: —404 500 и т.д…. Мое требование состоит в том, чтобы перехватить любую ошибку или исключение (может быть исключением soap fault) или код состояния http в ESB, чтобы я выполнял некоторую бизнес-логику на основе исключения. Я пытался использовать приведенный ниже код, но не смог получить никакого исключения.

 <action  class="com.xxx.esb.yyy.A228ProducerInquiry.ProducerInquiryTransactionHandler" name="RequestMapper" process="mapRequestPath">
     <property name="OGNLPath" value="AgentValidation.strXMLIN"/>
    </action>

    <action class="org.jboss.soa.esb.actions.soap.SOAPClient" name="FasatPost">
     <property name="responseAsOgnlMap" value="true" />
     <property name="wsdl" value="http://example.org?wsdl"/>
     <property name="SOAPAction" value="mySoapAction"/>
      </action>

    <action name="response-mapper"  class="com.foresters.esb.acord.A228ProducerInquiry.MyResponseAction">
     </action>
  

Я вижу исключение в консоли и пользовательском интерфейсе SOAP, но не могу получить в ESB

Спасибо, Madhu CM

Ответ №1:

Я не пробовал эту логику, но в «руководстве программистов» упоминается что-то вроде этого:

  1. Если при обработке сообщения возникает ошибка, вы можете вызвать предопределенную службу или отправить сообщение в службу очереди неработающих писем.
  2. Если ни одно из вышеперечисленных действий не настроено, ошибка будет перенаправлена на консоль, что вы и видите.

Вы можете попробовать установить поле FaultTo сообщения для службы обработки исключений. В этой службе обработки исключений вы можете выполнить необходимые шаги восстановления.