OpenJMS(java消息服务的一个实现)的使用
Openjms的使用
jms:java message service中文名字是“java消息服务”
Openjms是实现jms的一个开源程序,它包含一个服务器端和一堆的编程调用jar包。
官方当然有英文版的使用说明,这里只是说说我使用openjms的一些过程。
按照官方的要求,使用openjms分为4个步骤:
1、下载
2、安装
3、启动(启动服务器端)
4、使用
?
1、下载http://nchc.dl.sourceforge.net/project/openjms/openjms/openjms-0.7.7-beta-1/openjms-0.7.7-beta-1.zip
?? 在网站上之看到只看到一个beta版本,有点失望,不过还是看看吧
?
2、安装要求:java2运行环境
(1)解压压缩包
(2)设置环境变量
java_home java运行环境,java_home=c:\Program File\java\jdk1.6.0_17
openjms_home 解压之后的openjms路径openjms_home=e:\Program Files\openjms(建议将0.7.0这种东西去掉,在java中.号比较特殊,在加载类的时候可能导致错误)
(3)配置数据库
1)加入数据库驱动(本例中使用mysql数据库),在%OPENJMS_HOME%\bin\setenv.bat中设置
rem Configures the JDBC driver
set CLASSPATH=%OPENJMS_HOME%/extlib/mysql-connector-java-5.1.5-bin.jar(注:我是将mysql的驱动放入到openjms目录中,新建了一个外部jar包目录extlib)
2)修改数据库配置文件,$OPENJMS_HOME/config/openjms.xml
<DatabaseConfiguration>
????? <RdbmsDatabaseConfiguration
??????? driver="com.mysql.jdbc.Driver"
??????? url="jdbc:mysql://127.0.0.1:3306/openjms"
??????? user="root"
??????? password="123456" />
??? </DatabaseConfiguration>
注释掉: set JAVA_OPTS=%JAVA_OPTS% -Dderby.system.home=%OPENJMS_HOME%\db??
3)创建数据表
bin/dbtool.bat -create -config %OPENJMS_HOME%\config\openjms.xml
如果上面的批处理无法创建数据库表,请手动创建,创建数据库的脚本在$OPENJMS_HOME/db/sql中create_mysql.sql,至此,基本安装结束,准备启动
?
3、启动openjms服务器端bin/startup.bat?? 就可以启动了,如果一切正常,将会出现
Server accepting connections on tcp://127.0.0.1:3035/?? 的类似字样
当然也在命令行中检验一下端口是否开启 netstat -an|find "3035"
?
4、应用(测试)4-1、第一种测试方法
(1)创建一个新的java project
(2)导入需要的jar包(详细的jar包关系依赖请查看文档docs/usersguide/jars.html)
openjms-0.7.7-beta-1.jar
jms-1.1.jar
jndi-1.2.1.jar
openjms-0.7.7-beta-1.jar
openjms-common-0.7.7-beta-1.jar
openjms-net-0.7.7-beta-1.jar
commons-codec-1.3.jar
commons-logging-1.0.4.jar
concurrent-1.3.4.jar
spice-jndikit-1.2.jar
(3)利用%openjms_home%\examples\basic 中的例子测试一下
将Sender.java和Receiver.java? copy到工程当中去,带参数queue1运行Sender可以看到发送成功,然后带参数queue1运行Receiver可以看到接收到了消息,至此验证完毕。(注:这里之所以都带参数queue1运行程序,是因为在默认的配置中(%openjms_home%\config\openjms.xml),配置了目的地queue1)
4-2、第二种测试方法
cd %openjms_home%\examples\basic
build.bat(执行)
这个是讲目录中的java文件编译为class文件
1)run.bat Sender queue1
2)run.bat Receiver queue1
这个是调用发送和接受方法进行消息的传递
如果整个过程没有报错,你会看到对应的结果
?
1 楼 diggywang 2010-12-14 OpenJMS社区活跃程度、关注度、产品使用程度都远远没有ActiveMQ那么广泛。 2 楼 nick.s.ni 2010-12-15 glassFish用的是这个,还可以,只是netbeans的教程里没有远端client访问server jms 的方法,还是需要看OpenJms。而OpenJms里的说明又不包含glassFish集成的方式。从Server和Client访问有差异。 3 楼 zelsa 2010-12-15 nick.s.ni 写道glassFish用的是这个,还可以,只是netbeans的教程里没有远端client访问server jms 的方法,还是需要看OpenJms。
而OpenJms里的说明又不包含glassFish集成的方式。从Server和Client访问有差异。
GlassFish用的是OpenMQ 4 楼 asialee 2010-12-15 是的,glassfish使用的是OpenMQ,还挺不错的。 5 楼 solomon 2011-01-25 已经做的项目用的是 ACTIVEMQ ,从介绍来看,这个管理功能不错。