什么是处理由 IO 异常引起的异常的最佳方法。我有一个 jms 端点,它侦听队列上的消息。我意识到我的错误处理程序没有处理由于套接字超时错误而无法访问消息队列而导致的错误。我尝试创建一个默认系统异常策略,但这在 mule 3.4 上不起作用。异常跟踪如下
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)
********************************************************************************
恳请指教。
问候桑托什
根据问题中提供的信息,以下解决方案应该会有所帮助
<choice-exception-strategy>
<catch-exception-strategy when="#[exception.causedBy(javax.jms.JMSException)]">
........ Processing of the Message.
....................
</catch-exception-strategy>
</choice-exception-strategy>
希望这有帮助。