Refresh Your Java - Before Java Interview
We are Agile, believe in less Documentation - Only Quick notes (Java Interview Questions) of Java/J2ee Read more....
Spring based JMS Message Listener:
The following Example illustrates how to create a JMS Message
Listener (Receiver)
by using Spring Framework.
In this example we have a working code sample as well as Spring Configuration.
This could also be used as
JMS frame work, all you need to do is you have create
different kind of document Objects which are similar to
"ProductServiceRequestDocument"
and
send as Messages.
import
java.math.BigDecimal;
import java.util.Arrays;
import java.util.List;
import
javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageListener;
import
javax.jms.ObjectMessage;
import
javax.jms.TextMessage;
import
org.apache.commons.logging.Log;
import
org.apache.commons.logging.LogFactory;
import com.salesorderwbProductrequest.ProductServiceRequestDocument;
public class MessageReceiver implements MessageListener {
private static final Log log =
LogFactory.getLog(MessageReceiver.class);
private ProductService ProductService;
public ProductService getProductService()
{
return
this.ProductService;
}
public void setProductService(ProductService
ProductService) {
this.ProductService = ProductService;
}
public void onMessage(Message
message)
{
ProductServiceRequestDocument
ProductServiceRequestDocument;
try
{
if (message instanceof
TextMessage) {
String msg =
((TextMessage)message).getText();
if(msg.contains(Constants.Product_MESSSAGE_TYPE)){
log.warn("**************Received
Product Test Message***********");
ProductServiceRequestDocument
= ProductServiceRequestDocument.Factory.parse(msg);
ProductServiceRequest
request =
ProductServiceRequestDocument.getProductServiceRequest();
}else
if(msg.contains(Constants.OFFER_MESSSAGE_TYPE)){
}
}
}
catch (JMSException ex) {
throw new
RuntimeException(ex);
} catch
(BLException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
} finally {
}
}
}
Spring JMS Listerner Configuration :
<bean id="jmsContainer"
class="org.springframework.jms.listener.DefaultMessageListenerContainer">
<property
name="connectionFactory"
ref="queueConnectionFactory"/>
<property
name="destination"
ref="destination"/>
<property
name="messageListener"
ref="jmsListenerProxy"/>
<property
name="concurrentConsumers" value
="5"/>
<property
name="maxConcurrentConsumers" value
="15"/>
<property
name="sessionTransacted"
value="true"/>
</bean>
<bean name="jmsListenerProxy"
class="org.springframework.aop.framework.ProxyFactoryBean">
<property
name="target">
<ref
bean="jmsMessageListener"/>
</property>
<property
name="singleton" value="false"
/>
</bean>
<bean id="jmsMessageListener"
class="org.springframework.jms.listener.adapter.MessageListenerAdapter">
<constructor-arg>
<ref bean="jmsMessageReceiver"
/>
</constructor-arg>
</bean>
<bean
id="jmsMessageReceiver"
class="com.salesorder.async.jms.MessageReceiver"
>
<property
name="productService">
<ref bean="productService" />
</property>
</bean>
<bean id="productService"
class="com.salesorder.ui.ProductServiceImpl">
</bean>
This Portal is intended to put all Java/J2ee related topics at one single place for quick referance, not only Technical , but also the Project Management Related thing such as Development Process methodoogies build process, unit testing etc.,
This Portal has More than 500 Java Interview Questions (also could be Considered as Quick Notes) very neatly separated topic by topic with simple diagrams which makes you easily understandable. Importantly these are from our Realtime expericance.