<bean id="jmsConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
<property name="brokerURL" value="tcp://localhost:61616"/>
</bean>
<bean id="jmsDestination" class="org.apache.activemq.command.ActiveMQQueue">
<constructor-arg name="name" value="myQueue"/>
</bean>
<bean id="jmsListenerContainer" class="org.springframework.jms.listener.DefaultMessageListenerContainer">
<property name="connectionFactory" ref="jmsConnectionFactory"/>
<property name="destination" ref="jmsDestination"/>
<property name="messageListener" ref="messageListener"/>
<property name="errorHandler">
<bean class="com.example.MyErrorHandler"/>
</property>
</bean>
<bean id="messageListener" class="com.example.MyMessageListener"/>
public class MyErrorHandler implements ErrorHandler {
private static final Logger LOGGER = LoggerFactory.getLogger(MyErrorHandler.class);
@Override
public void handleError(Throwable t) {
LOGGER.error("An error occurred while processing the message: {}", t.getMessage());
}
}
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<logger name="com.example" level="ERROR"/>
<root level="INFO">
<appender-ref ref="STDOUT"/>
</root>
</configuration>