gpt4 book ai didi

logging - 在Mule ESB中记录SOAP错误

转载 作者:行者123 更新时间:2023-12-03 08:58:41 24 4
gpt4 key购买 nike

我正在尝试让Mule记录我的SOAP组件在以下流程中引发的异常。例如,如果我将其传递为xml格式不正确的xml,则在soapUI中会得到有意义的输出,但是我希望能够在控制台中将其记录下来或将其发送到JMS队列。

<jms:activemq-connector name="Active_MQ" brokerURL="tcp://localhost:61616" validateConnections="true" doc:name="Active MQ"/>
<flow name="CAB-Mule_WMBFlow1" doc:name="CAB-Mule_WMBFlow1">
<http:inbound-endpoint exchange-pattern="request-response" address="http://localhost:8081/DemoCustomer" doc:name="HTTP" mimeType="text/xml">
<idempotent-redelivery-policy maxRedeliveryCount="3">
<dead-letter-queue>
<vm:outbound-endpoint path="error-queue" />
</dead-letter-queue>
</idempotent-redelivery-policy>
</http:inbound-endpoint>
<cxf:jaxws-service port="80" serviceClass="com.mulesoft.demo.DemoCustomer" doc:name="SOAP"/>
<component class="com.mulesoft.demo.DemoCustomerIntImpl" doc:name="Java"/>
<jms:outbound-endpoint queue="StudioIN" connector-ref="Active_MQ" doc:name="JMS"/>
<logger level="INFO" doc:name="Logger" message="Payload: #[payload]"/>
</flow>
<flow name="error" doc:name="error">
<component class="com.mulesoft.demo.ExceptionService" doc:name="Java"/>
<jms:outbound-endpoint queue="Error" connector-ref="Active_MQ" doc:name="JMS"/>
</flow>

ExceptionService只是:
public class ExceptionService {
public void onException(ExceptionMessage e) {
System.err.println("EXCEPTION MESSAGE:::: " + e.getException().getMessage());
}
}

最佳答案

<catch-exception-strategy>这样结束之前定义一个CAB-Mule_WMBFlow1并记录并将错误消息推送到JMS队列

<flow name="CAB-Mule_WMBFlow1" doc:name="CAB-Mule_WMBFlow1">
<http:inbound-endpoint exchange-pattern="request-response" address="http://localhost:8081/DemoCustomer" doc:name="HTTP" mimeType="text/xml">
<idempotent-redelivery-policy maxRedeliveryCount="3">
<dead-letter-queue>
<vm:outbound-endpoint path="error-queue" />
</dead-letter-queue>
</idempotent-redelivery-policy>
</http:inbound-endpoint>
<cxf:jaxws-service port="80" serviceClass="com.mulesoft.demo.DemoCustomer" doc:name="SOAP"/>
<component class="com.mulesoft.demo.DemoCustomerIntImpl" doc:name="Java"/>
<jms:outbound-endpoint queue="StudioIN" connector-ref="Active_MQ" doc:name="JMS"/>
<logger level="INFO" doc:name="Logger" message="Payload: #[payload]"/>

<catch-exception-strategy>
<logger level="INFO" message="---->Exception payload is: #[payload]"/>
<jms:outbound-endpoint queue="Error" />
</catch-exception-strategy>
</flow>

另外,您可以使用 message.getExceptionPayload().getMessage()在Java组件中获取异常消息,并在消息类型为 MuleMessage的控制台上打印该异常消息。

关于logging - 在Mule ESB中记录SOAP错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14949148/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com