Active MQ (四) Spring JMS 整合
1. Spring JMS整合类图
?

?
?
2. 程序
applicationContext.xml<?xml version="1.0" encoding="UTF-8"?>
<beans
?xmlns="http://www.springframework.org/schema/beans"
?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">
?
?<!-- MQ Provider -->
?<bean name="actualJMSConnFactory" value="java:comp/env/jms/NormalConnectionFactory"/>
?</bean>
?
?<bean name="queueSendTo" value="java:comp/env/jms/queue/sender"/>
?</bean>
?
?<bean name="queueReceiveFrom" value="java:comp/env/jms/queue/receiver"/>
?</bean>
?
?<!-- Spring JMS -->
?<bean name="jmsConnFactory" ref="actualJMSConnFactory"/>
?</bean>
?
?<bean name="sender" ref="jmsConnFactory"/>
??<property name="defaultDestination" ref="queueSendTo"/>
?</bean>
?
?<bean name="receiver" ref="jmsConnFactory"/>
??<property name="defaultDestination" ref="queueReceiveFrom"/>
??<property name="receiveTimeout" value="3000"/>
?</bean>
?
?<!-- Application -->
?<bean name="jmsSender" ref="sender"/>
?</bean>
?
?<bean name="jmsReceiver" ref="receiver"/>
?</bean>
?
?<!-- ApplicationContext Aware -->
?<bean name="appContext" pageEncoding="UTF-8"%>
<jsp:directive.page import="springJMS.JMSSender"/>
<jsp:directive.page import="springJMS.AppContext"/>
<jsp:directive.page import="springJMS.JMSReceiver"/>
<jsp:directive.page import="javax.jms.Message"/>
<jsp:directive.page import="javax.jms.TextMessage"/>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
JMSSender sender = (JMSSender) AppContext.getBean("jmsSender");
JMSReceiver receiver = (JMSReceiver) AppContext.getBean("jmsReceiver");
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
? <head>
??? <base href="<%=basePath%>">
???
??? <title>JMS Queue Test</title>
?<meta http-equiv="pragma" content="no-cache">
?<meta http-equiv="cache-control" content="no-cache">
?<meta http-equiv="expires" content="0">???
?<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
?<meta http-equiv="description" content="This is my page">
?<!--
?<link rel="stylesheet" type="text/css" href="styles.css">
?-->
? </head>
?
? <body>
?<%sender.send("Nice to meet u!"); %>
?<%="Send : Nice to meet u!" %><br>
?<%
??Message message = receiver.receive();
??if (message instanceof TextMessage) {
?%>
??<%="Receive : " + ((TextMessage) message).getText() %>
?<%??
??}
?%>?
? </body>
?
</html>
?
3.测试
开启MQ,创建对应的QUEUE,运行http://orange5458.iteye.com/admin/blogs/988495
的消息处理器,启动TOMCAT,进入springJMS.jsp,刷新。
4.参考资料
Spring开发者手册 http://orange5458.iteye.com/admin/blogs/981099
?
?