#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:
Я не пробовал эту логику, но в «руководстве программистов» упоминается что-то вроде этого:
- Если при обработке сообщения возникает ошибка, вы можете вызвать предопределенную службу или отправить сообщение в службу очереди неработающих писем.
- Если ни одно из вышеперечисленных действий не настроено, ошибка будет перенаправлена на консоль, что вы и видите.
Вы можете попробовать установить поле FaultTo сообщения для службы обработки исключений. В этой службе обработки исключений вы можете выполнить необходимые шаги восстановления.