技术开发 频道

详细解析Tomcat下应用JMS开发技巧

【IT168 技术文档】

   JMS做为J2EE的高级部分一直蒙着一层神秘的面纱,作为JMS的定制者SUN只规定了JMS规范,象很多其他SUN产品一样被多家厂商提供了具体的实现。但是作为tomcat和RESIN这些面向低端但却被广泛应用的服务器本身并不对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服务器的具体配置:
 
<?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="derby-ds" class=
 "org.apache.commons.dbcp.BasicDataSource"
 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服务器已经绑到了上面。
0
相关文章