Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从未对JMSException调用JMS CachingConnectionFactory OneException方法_Java_Apache Camel_Spring Jms_Qpid_Jms Topic - Fatal编程技术网

Java 从未对JMSException调用JMS CachingConnectionFactory OneException方法

Java 从未对JMSException调用JMS CachingConnectionFactory OneException方法,java,apache-camel,spring-jms,qpid,jms-topic,Java,Apache Camel,Spring Jms,Qpid,Jms Topic,我正在使用ApacheCamel和Spring从Java服务发送消息。我需要重置JMS连接,以防在exchange发生任何错误。我使用下面的代码来实现我的目标 try { producerTemplate.sendBody(endPoint, bytes); } catch (final RuntimeCamelException exception) { LOGGER.error("Exception occured in sendBody", exception.getMes

我正在使用ApacheCamel和Spring从Java服务发送消息。我需要重置JMS连接,以防在exchange发生任何错误。我使用下面的代码来实现我的目标

try
{
    producerTemplate.sendBody(endPoint, bytes);
}
catch (final RuntimeCamelException exception)
{
    LOGGER.error("Exception occured in sendBody", exception.getMessage(), exception);
    handleError(); // handle error here.
}
在camel上下文中,我使用异常侦听器定义了CachingConnectionFactory,并使reconnectOnException=true


执行在catch块内进行,但从未调用SingleConnectionFactory的OneException(),即使定义了exceptionListener。其思想是调用resetConnection()(在OneException内部)来重置JMS连接。

实现
ExceptionListener
,并将异常侦听器定义作为属性添加到spring连接工厂
testCachingConnectionFactory

例如,创建异常侦听器类(组件)
jmsceceptionListener

public class JmsExceptionListener implements ExceptionListener {    
    @Override
    public void onException(JMSException exception) {
        // what ever you wanna do here!
    }
}
然后为
jmsceptionListener
添加bean定义:

public class JmsExceptionListener implements ExceptionListener {    
    @Override
    public void onException(JMSException exception) {
        // what ever you wanna do here!
    }
}

然后将定义添加为异常侦听器属性:

而不是您在配置中使用的:


实现
异常侦听器
,并将异常侦听器定义作为属性添加到spring连接工厂
testCachingConnectionFactory

例如,创建异常侦听器类(组件)
jmsceceptionListener

public class JmsExceptionListener implements ExceptionListener {    
    @Override
    public void onException(JMSException exception) {
        // what ever you wanna do here!
    }
}
然后为
jmsceptionListener
添加bean定义:

public class JmsExceptionListener implements ExceptionListener {    
    @Override
    public void onException(JMSException exception) {
        // what ever you wanna do here!
    }
}

然后将定义添加为异常侦听器属性:

而不是您在配置中使用的:


CachingConnectionFactory的父类SingleConnectionFactory本身实现ExceptionListener…因此我们不需要创建任何自定义类。CachingConnectionFactory的父类SingleConnectionFactory本身实现ExceptionListener…因此我们不需要创建任何自定义类。