2013-12-17 108 views
0

什么是处理IO异常引发异常的最佳方法。我有一个jms端点,它监听队列上的消息。我意识到我的错误处理程序没有处理由于套接字超时错误而导致消息队列未被访问而导致的错误。 我试图创建一个defaultsystemexception策略,但不适用于mule 3.4。 异常跟踪如下Mule ESB策略来处理套接字读取超时异常

ERROR 2013-12-17 17:39:52,419 [Thread-2] org.mule.exception.DefaultSystemExceptionStrategy: 
******************************************************************************** 
Message    : java.sql.SQLException: Io exception: Socket read timed out (javax.jms.JMSException) 
Code     : MULE_ERROR--2 
-------------------------------------------------------------------------------- 
Exception stack is: 
1. java.sql.SQLException: Io exception: Socket read timed out(JMS Code: null) (javax.jms.JMSException) 
oracle.jms.AQjmsExceptionListener:222 (http://java.sun.com/j2ee/sdk_1.3/techdocs/api/javax/jms/JMSException.html) 
2. java.sql.SQLException: Io exception: Socket read timed out (javax.jms.JMSException) (org.mule.transport.ConnectException) 
org.mule.transport.jms.JmsConnector:508 (http://www.mulesoft.org/docs/site/current3/apidocs/org/mule/transport/ConnectException.html) 
-------------------------------------------------------------------------------- 
Root Exception stack trace: 
javax.jms.JMSException: java.sql.SQLException: Io exception: Socket read timed out 
at oracle.jms.AQjmsExceptionListener.run(AQjmsExceptionListener.java:222) 
+ 1 more (set debug level logging or '-Dmule.verbose.exceptions=true' for everything) 
******************************************************************************** 

请亲切提醒。

问候 桑托斯

+0

在这里添加你的config xml。这将有助于提供正确的解决方案。 – user1760178

+0

我在mulesoft上发现了一个建议的修复,它涉及到创建一个扩展了DefaultSystemExceptionStrategy的bean。这似乎是工作。追赶策略并没有挑选出例外。这里是链接到建议的修复。 http://forum.mulesoft.org/mulesoft/topics/how_to_handle_exception_from_outbound_endpoint – SanSharma

回答

0

基于对这一问题提供的信息,以下解决方案应该是有帮助的

<choice-exception-strategy> 
     <catch-exception-strategy when="#[exception.causedBy(javax.jms.JMSException)]"> 
      ........ Processing of the Message. 
      .................... 
     </catch-exception-strategy> 
</choice-exception-strategy> 

希望这有助于。

+0

捕获异常策略不会针对除消息传递异常之外的异常进行调用。 – SanSharma