解析Tomcat下应用JMS开发技巧

news/2024/5/19 0:49:32 标签: jms, tomcat, activemq, spring, hsqldb, jdbc

转自 http://www.webo.com.cn/exam/html/2007-6-28/content_322492.html

【摘 要】在应用了一些开发框架如spring的项目里如果要使用到JMS,虽然SPRING提供了部分对JMS的支持但经过我一段时间的应用发现,OO的封装在某些地方反而成为开发过程中的障碍。

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服务器的具体配置:

<?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服务器已经绑到了上面。

http://www.niftyadmin.cn/n/1055562.html

相关文章

关于code 上server的证书的问题

1.连接上一篇的第一种方法用httpClient&#xff1a; CertificateOperations certOps new CertificateOperations();SSLContext sslContext SSLContext.getInstance("TLS");sslContext.init(certOps.getKeyManagerFactory().getKeyManagers(), certOps.getTrustAllC…

Java调用restful接口示例

在这个例子中&#xff0c;我们将看到如何使用java.net包实用工具&#xff0c;创建一个访问REST服务RESTful的客户端。当然这不是创建一个RESTful客户端最简单的方法&#xff0c;因为你必须自己读取服务器端的响应&#xff0c;以及Json和Java对象的转换。 请求Get public class …

OrionAndWANOptimization

OrionAndWANOptimization转载于:https://blog.51cto.com/ziyan/168749

2018-2019-2 20175328 《Java程序设计》第十周学习总结

十二章主要内容——Java多线程机制 一、进程与线程 程序是一段静态的代码&#xff0c;它是应用软件执行的蓝本。 进程是程序的一次动态执行过程&#xff0c;它对应了从代码加载、执行至执行完毕的一个完整过程&#xff0c;这个过程也是进程本身从产生、发展至消亡的过程。 现代…

Retrofit 入门 基本使用 总结 MD

Markdown版本笔记我的GitHub首页我的博客我的微信我的邮箱MyAndroidBlogsbaiqiantaobaiqiantaobqt20094baiqiantaosina.com目录 目录Retrofit入门Retrofit注解Gson与ConverterRxJava与CallAdapter自定义Converter自定义CallAdapter其它说明Retrofit.Builder的其他方法Retrofit的…

Cisco交换机功能性命令简介

Cisco交换机功能性命令简介 1.在基于IOS的交换机上设置主机名/系统名:switch(config)# hostname hostname在基于CLI的交换机上设置主机名/系统名:switch(enable) set system name name-string2.在基于IOS的交换机上设置登录口令:switch(config)# enable password level 1 pass…

小程序开发(flex详解)

进来的各位大佬们帮忙点击一下淘宝链接&#xff08;帮表妹的店铺增加点儿人气&#xff09;&#xff0c;感谢感谢&#xff01;&#xff01;&#xff01; &#xff1f;遇到的问题 1、tabBar切换&#xff0c;改变导航条的标题 在页面的.json里面编写&#xff0c;注意在根节点写&a…