以下に示すように、@JmsListener
アノテーション付きメソッドを使用してJMSメッセージをリッスンしています。
@JmsListener(destination="exampleQueue")
public void fetch(@Payload String message){
process(message);
}
このメソッドを実行すると例外が発生し、警告ログが表示されました
Execution of JMS message listener failed, and no ErrorHandler has been set.
ケースを処理するためにErrorHandler
を設定するにはどうすればよいですか。 Spring Boot 1.3.3.RELEASEを使用しています
@EnableJms
、@JmsListener
などのアノテーションを使用してSpring JMSを操作する場合、ErrorHandlerは次のように設定できます。
@Bean
public DefaultJmsListenerContainerFactory jmsListenerContainerFactory(ConnectionFactory connectionFactory, ExampleErrorHandler errorHandler) {
DefaultJmsListenerContainerFactory factory = new DefaultJmsListenerContainerFactory();
factory.setConnectionFactory(connectionFactory);
factory.setErrorHandler(errorHandler);
return factory;
}
@Service
public class ExampleErrorHandler implements ErrorHandler{
@Override
public void handleError(Throwable t) {
//handle exception here
}
}
詳細については、こちらをご覧ください。 注釈駆動型リスナーエンドポイント