Bael 2560 spring jms error handler (#6447)
* Spring jms error handler * BAEL-2560 Reverting a change
This commit is contained in:
parent
94969021ca
commit
00c115229b
@ -0,0 +1,17 @@
|
|||||||
|
package com.baeldung.spring.jms;
|
||||||
|
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
import org.springframework.util.ErrorHandler;
|
||||||
|
|
||||||
|
public class SampleJmsErrorHandler implements ErrorHandler {
|
||||||
|
|
||||||
|
private static final Logger LOG = LoggerFactory.getLogger(SampleJmsErrorHandler.class);
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void handleError(Throwable t) {
|
||||||
|
LOG.warn("In default jms error handler...");
|
||||||
|
LOG.error("Error Message : {}", t.getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -26,4 +26,8 @@ public class SampleJmsMessageSender {
|
|||||||
public void sendMessage(final Employee employee) {
|
public void sendMessage(final Employee employee) {
|
||||||
this.jmsTemplate.convertAndSend(employee);
|
this.jmsTemplate.convertAndSend(employee);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void sendTextMessage(String msg) {
|
||||||
|
this.jmsTemplate.send(queue, s -> s.createTextMessage(msg));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -27,6 +27,9 @@ public class SampleListener implements MessageListener {
|
|||||||
try {
|
try {
|
||||||
String msg = ((TextMessage) message).getText();
|
String msg = ((TextMessage) message).getText();
|
||||||
System.out.println("Received message: " + msg);
|
System.out.println("Received message: " + msg);
|
||||||
|
if (msg == null) {
|
||||||
|
throw new IllegalArgumentException("Null value received...");
|
||||||
|
}
|
||||||
} catch (JMSException ex) {
|
} catch (JMSException ex) {
|
||||||
throw new RuntimeException(ex);
|
throw new RuntimeException(ex);
|
||||||
}
|
}
|
||||||
@ -37,4 +40,5 @@ public class SampleListener implements MessageListener {
|
|||||||
Map map = (Map) this.jmsTemplate.receiveAndConvert();
|
Map map = (Map) this.jmsTemplate.receiveAndConvert();
|
||||||
return new Employee((String) map.get("name"), (Integer) map.get("age"));
|
return new Employee((String) map.get("name"), (Integer) map.get("age"));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:amq="http://activemq.apache.org/schema/core" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
xmlns:amq="http://activemq.apache.org/schema/core" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
||||||
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
|
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
|
||||||
http://activemq.apache.org/schema/core http://activemq.apache.org/schema/core/activemq-core.xsd">
|
http://activemq.apache.org/schema/core http://activemq.apache.org/schema/core/activemq-core.xsd">
|
||||||
|
|
||||||
@ -10,23 +9,20 @@
|
|||||||
<property name="defaultDestination" ref="destinationQueue" />
|
<property name="defaultDestination" ref="destinationQueue" />
|
||||||
<property name="messageConverter" ref="myMessageConverter" />
|
<property name="messageConverter" ref="myMessageConverter" />
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
<bean id="amqConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
|
<bean id="amqConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
|
||||||
<constructor-arg index="0" value="tcp://localhost:61616" />
|
<constructor-arg index="0" value="tcp://localhost:61616" />
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
<!-- ConnectionFactory Definition -->
|
<!-- ConnectionFactory Definition -->
|
||||||
<bean id="connectionFactory"
|
<bean id="connectionFactory" class="org.springframework.jms.connection.SingleConnectionFactory">
|
||||||
class="org.springframework.jms.connection.SingleConnectionFactory">
|
|
||||||
<constructor-arg ref="amqConnectionFactory" />
|
<constructor-arg ref="amqConnectionFactory" />
|
||||||
|
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
|
|
||||||
<bean id="destinationQueue" class="org.apache.activemq.command.ActiveMQQueue">
|
<bean id="destinationQueue" class="org.apache.activemq.command.ActiveMQQueue">
|
||||||
<constructor-arg index="0" value="IN_QUEUE" />
|
<constructor-arg index="0" value="IN_QUEUE" />
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
|
|
||||||
<bean id="SampleJmsMessageSender" class="com.baeldung.spring.jms.SampleJmsMessageSender">
|
<bean id="SampleJmsMessageSender" class="com.baeldung.spring.jms.SampleJmsMessageSender">
|
||||||
<property name="queue" ref="destinationQueue" />
|
<property name="queue" ref="destinationQueue" />
|
||||||
<property name="jmsTemplate" ref="jmsTemplate" />
|
<property name="jmsTemplate" ref="jmsTemplate" />
|
||||||
@ -40,12 +36,13 @@
|
|||||||
<property name="queue" ref="destinationQueue" />
|
<property name="queue" ref="destinationQueue" />
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
|
<bean id="errorHandler" class="com.baeldung.spring.jms.SampleJmsErrorHandler" />
|
||||||
|
|
||||||
<!-- and this is the message listener container -->
|
<!-- and this is the message listener container -->
|
||||||
<bean id="jmsContainer"
|
<bean id="jmsContainer" class="org.springframework.jms.listener.DefaultMessageListenerContainer">
|
||||||
class="org.springframework.jms.listener.DefaultMessageListenerContainer">
|
|
||||||
<property name="connectionFactory" ref="connectionFactory" />
|
<property name="connectionFactory" ref="connectionFactory" />
|
||||||
<property name="destinationName" value="IN_QUEUE" />
|
<property name="destinationName" value="IN_QUEUE" />
|
||||||
<property name="messageListener" ref="messageListener" />
|
<property name="messageListener" ref="messageListener" />
|
||||||
|
<property name="errorHandler" ref="errorHandler" />
|
||||||
</bean>
|
</bean>
|
||||||
</beans>
|
</beans>
|
||||||
|
@ -8,12 +8,14 @@ import org.springframework.context.support.ClassPathXmlApplicationContext;
|
|||||||
public class DefaultTextMessageSenderIntegrationTest {
|
public class DefaultTextMessageSenderIntegrationTest {
|
||||||
|
|
||||||
private static SampleJmsMessageSender messageProducer;
|
private static SampleJmsMessageSender messageProducer;
|
||||||
|
private static SampleListener messageListener;
|
||||||
|
|
||||||
@SuppressWarnings("resource")
|
@SuppressWarnings("resource")
|
||||||
@BeforeClass
|
@BeforeClass
|
||||||
public static void setUp() {
|
public static void setUp() {
|
||||||
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("classpath:EmbeddedActiveMQ.xml", "classpath:applicationContext.xml");
|
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("classpath:EmbeddedActiveMQ.xml", "classpath:applicationContext.xml");
|
||||||
messageProducer = (SampleJmsMessageSender) applicationContext.getBean("SampleJmsMessageSender");
|
messageProducer = (SampleJmsMessageSender) applicationContext.getBean("SampleJmsMessageSender");
|
||||||
|
messageListener = (SampleListener) applicationContext.getBean("messageListener");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@ -21,4 +23,9 @@ public class DefaultTextMessageSenderIntegrationTest {
|
|||||||
messageProducer.simpleSend();
|
messageProducer.simpleSend();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testSendTextMessage() {
|
||||||
|
messageProducer.sendTextMessage(null);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user