tomcat下应用JMS
jms做为J2EE的高级部分一直蒙着一层神秘的面纱,作为JMS的定制者SUN只规定了JMS规范,象很多其他SUN产品一样被多家厂商提供了具体的实现。但是作为tomcat和RESIN(今年初宣布全部支持J2EE规范)。这些面向低端但却被广泛应用的服务器本身并不对JMS提供支持。庆幸的是openjms和activeMQ两家开源软件提供了插件式的支持。
在应用了一些开发框架如spring的项目里如果要使用到JMS,虽然SPRING提供了部分对JMS的支持但经过我一段时间的应用发现,OO的封装在某些地方反而成为开发过程中的障碍。在实现诸如监听之类的代码段里使人非常的懊恼,即使用callback(回调)有些东西仍然不能够很好的被取到。
下面就一些TOMCAT上面JMS的支持既实现做一下整理。
1.很自然的你需要下载JMS实现,如:opnerJMS或者activeMQ .下载地址www.jmsopen.com 或www.activeMQ.com
2.服务器下载以后的具体配置在以上两个网站上都有很详细的说明,就不再列举了。
3。和WEB服务器的整合
首先要配置应用的web.xml这个文件配置如下:
1
<
context-param
>
2 < param-name > brokerURI </ param-name >
3 < param-value > /WEB-INF/activemq.xml </ param-value >
4 </ context-param >
5
6 < listener >
7 < listener-class > org.activemq.web.SpringBrokerContextListener </ listener-class >
8 </ listener >
将这一段代码放到web.xml里。注意到activemq.xml文件,是jms服务器的具体配置:
2 < param-name > brokerURI </ param-name >
3 < param-value > /WEB-INF/activemq.xml </ param-value >
4 </ context-param >
5
6 < listener >
7 < listener-class > org.activemq.web.SpringBrokerContextListener </ listener-class >
8 </ listener >
<?
xml version="1.0" encoding="UTF-8"
?>
<! DOCTYPE beans PUBLIC "-//ACTIVEMQ//DTD//EN" "http://activemq.org/dtd/activemq.dtd" >
< beans >
<!-- ==================================================================== -->
<!-- ActiveMQ Broker Configuration -->
<!-- ==================================================================== -->
< broker >
< connector >
< tcpServerTransport uri ="tcp://localhost:61616" useAsyncSend ="true" maxOutstandingMessages ="50" />
</ connector >
<!-- to enable Stomp support uncomment this
<connector>
<serverTransport uri="stomp://localhost:61626"/>
</connector>
-->
< persistence >
< jdbcPersistence dataSourceRef ="oracle-ds" />
</ persistence >
</ broker >
<!-- ==================================================================== -->
<!-- JDBC DataSource Configurations -->
<!-- ==================================================================== -->
<!-- The Derby Datasource that will be used by the Broker -->
< bean id ="oracle-ds" class ="[oracle驱动]" destroy-method ="close" >
< property name ="driverClassName" >
< value > org.apache.derby.jdbc.EmbeddedDriver </ value >
</ property >
< property name ="url" >
<!-- Use a URL like 'jdbc:hsqldb:hsql://localhost:9001' if you want to connect to a remote hsqldb -->
< value > jdbc:derby:derbydb;create=true </ value >
</ property >
< property name ="username" >
< value ></ value >
</ property >
< property name ="password" >
< value ></ value >
</ property >
< property name ="poolPreparedStatements" >
< value > true </ value >
</ property >
</ bean >
</ beans >
此时,在启动你的TOMCAT的时候会看到JMS服务器已经绑到了上面。(待续)
<! DOCTYPE beans PUBLIC "-//ACTIVEMQ//DTD//EN" "http://activemq.org/dtd/activemq.dtd" >
< beans >
<!-- ==================================================================== -->
<!-- ActiveMQ Broker Configuration -->
<!-- ==================================================================== -->
< broker >
< connector >
< tcpServerTransport uri ="tcp://localhost:61616" useAsyncSend ="true" maxOutstandingMessages ="50" />
</ connector >
<!-- to enable Stomp support uncomment this
<connector>
<serverTransport uri="stomp://localhost:61626"/>
</connector>
-->
< persistence >
< jdbcPersistence dataSourceRef ="oracle-ds" />
</ persistence >
</ broker >
<!-- ==================================================================== -->
<!-- JDBC DataSource Configurations -->
<!-- ==================================================================== -->
<!-- The Derby Datasource that will be used by the Broker -->
< bean id ="oracle-ds" class ="[oracle驱动]" destroy-method ="close" >
< property name ="driverClassName" >
< value > org.apache.derby.jdbc.EmbeddedDriver </ value >
</ property >
< property name ="url" >
<!-- Use a URL like 'jdbc:hsqldb:hsql://localhost:9001' if you want to connect to a remote hsqldb -->
< value > jdbc:derby:derbydb;create=true </ value >
</ property >
< property name ="username" >
< value ></ value >
</ property >
< property name ="password" >
< value ></ value >
</ property >
< property name ="poolPreparedStatements" >
< value > true </ value >
</ property >
</ bean >
</ beans >
posted on 2005-12-08 18:41 javajohn 阅读(7415) 评论(19) 编辑 收藏 所属分类: 短信开发
Feedback
# re: tomcat下应用JMS 2005-12-19 09:38 jackey
楼主,麻烦把具体的配置写详细,或者把文档发到我的邮箱,急用.
还有openjms的还有没别的网站下载,上面的我打不开.
我的邮箱:feitianshu1983@21cn.com 回复 更多评论
# re: tomcat下应用JMS 2005-12-19 13:13 javajohn
以上的两个网地址:
http://activemq.codehaus.org/ 是activeMQ的
http://openjms.sourceforge.net/ 是openjms的
配置的时候注意
<persistence>
<jdbcPersistence dataSourceRef="oracle-ds"/>
</persistence>
这段dataSourceRef的值是你下面配置的数据库连接的名称,比如我的配置是oracle-ds,在下面就做了oracle的连接信息,在下载了activeMQ以后在它的配置文件里有对mysql的例子。