У меня есть проект, закодированный с использованием Spring-hibernate-activeMq
Что мне хотелось бы знать, так это то, что если я настроил activeMq, как я объяснил ниже, как мне реализовать класс слушателей исключений?Я знаю, что вы не очень хорошо понимаете сейчас, но, пожалуйста, посмотрите мои образцы ниже.
Дайте мне знать, правильно ли я реализовал прослушиватель исключений.Если нет, приведите пример, как это должно быть.Заранее спасибо.
Контекст приложения: (обратите внимание, что я не объявлял ни один компонент для прослушивателя исключений, кроме одного, который является свойством connectionFactory)
<bean id="connectionFactory"
class="org.springframework.jms.connection.CachingConnectionFactory"
depends-on="broker">
<constructor-arg ref="amqConnectionFactory"/>
<property name="reconnectOnException" value="true"/>
<property name="exceptionListener" ref="jmsExceptionListener"/>
<property name="sessionCacheSize" value="100"/>
</bean>
Класс приемника исключений JMS: (Обратите внимание, что я пытаюсь внедрить ConnectionFactory, я не уверен, возможно ли это или нет .. И последнее, пожалуйста, проверьте аргументы конструктора этого, я также не увереноб этом ..)
@Component("jmsExceptionListener")
public class JMSExceptionListener implements ExceptionListener {
private final static Logger logger = LoggerFactory.getLogger(JMSExceptionListener.class);
@Autowired
private CachingConnectionFactory connection;
// private Connection connection = null;
private ExceptionListener exceptionListener = null;
public JMSExceptionListener() {
}
public JMSExceptionListener(CachingConnectionFactory connection, ExceptionListener exceptionListener) {
super();
this.connection = connection;
this.exceptionListener = exceptionListener;
}
public void onException(JMSException arg0) {
logger.error("JMS exception has occured.. ", arg0);
if(connection != null){
connection.onException(arg0);
}
if (exceptionListener != null) {
exceptionListener.onException(arg0);
}
}
}