1.往Spring容器中注入实体bean
<!--上下文环境-->
<bean id="emsJndiTemplate" class="org.springframework.jndi.JndiTemplate">
<property name="environment">
<prop key="java.naming.provider.url">tcp://dggtsp35-eip:7222</prop>
<prop key="java.naming.factory.initial">com.tibco.....</prop>
<prop key="java.naming.security.principal">EIP_EIP_COMMON</prop>
<prop key="java.naming.security.credentials">EIP_EIP_COMMON</prop>
</property>
</bean>
<!--创建连接工厂-->
<bean id="targetConnectionFactory" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiTemplate">
<ref bean="emsJndiTemplate"/>
</property>
<property name="jndiName" value="GenericConnectionFactory"/>
</bean>
<bean id="emsConnectionFactory" class="org.springframework.jms.connection.UserCredentialsConnectionFactoryAdapter">
<property name="targetConnectionFactory">
<ref bean="targetConnectionFactory"/>
</property>
<property name="username" value="EIP_EIP_COMMON"/>
<property name="password" value="EIP_EIP_COMMON"/>
</bean>
<!--创建发送/接收队列-->
<bean id="send/receive" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiTemplate">
<ref bean="emsJndiTemplate"/>
</property>
<property name="jndiName" value="dh.test"/><!--队列名称-->
</bean>
<!--创建监听类-->
<bean id="messageListener" class="jmsexample.ExampleListener" />
<!--创建监听容器-->
<bean id="jmsContainer" class="org.springframework.jms.listener.DefaultMessageListenerContainer">
<property name="connectionFactory" ref="emsConnectionFactory"/>
<property name="destination" ref="send/receive"/>
<property name="messageListener" ref="messageListener" />
</bean>
2.发送代码
import javax.jms.ConnectionFactory;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.Queue;
import javax.jms.Session;
import org.springframework.jms.core.MessageCreator;
import org.springframework.jms.core.JmsTemplate;
public class JmsQueueSender {
private JmsTemplate jmsTemplate;
private Queue queue;
public void setConnectionFactory(ConnectionFactory cf) {
this.jmsTemplate = new JmsTemplate(cf);
}
public void setQueue(Queue queue) {
this.queue = queue;
}
public void simpleSend() {
this.jmsTemplate.send(this.queue, new MessageCreator() {
public Message createMessage(Session session) throws JMSException {
return session.createTextMessage("hello queue world");
}
});
}
}
3.监听代码
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageListener;
import javax.jms.TextMessage;
public class ExampleListener implements MessageListener {
public void onMessage(Message message) {
if (message instanceof TextMessage) {
try {
System.out.println(((TextMessage) message).getText());
}
catch (JMSException ex) {
throw new RuntimeException(ex);
}
}
else {
throw new IllegalArgumentException("Message must be of type TextMessage");
}
}
}