最近在一個項目用到了JMS,由於是初次使用,碰到了很多問題;但是一步步走來,現在總算比較穩定了。以下是一點使用心得,趕緊寫下來,免得以後連自己都忘記了!
我們的使用的環境是Jboss4.2.2+Messaging1.4SP1+Spring2.0.7
以下是下載地址:
jboss-4.2.2.GA.zip <http://labs.jboss.com/jbossas/downloads/>
jboss-messaging-1.4.0.SP1.zip <http://labs.jboss.com/jbossmessaging/downloads/>
spring-framework-2.0.7.zip <http://www.springframework.org/download>
環境配置:
由於Jboss中默認的JMS服務是JbossMQ,我們需要把MQ替換成Messaging。具體的配置請參見<http://labs.jboss.com/file-access/default/members/jbossmessaging/freezone/docs/userguide-1.4.0.SP1/html/installation.html>
jboss-messaging-1.4.0.SP1.zip文件中也有一份同樣的userguide。
假定配置好的Messaging目錄爲</jboss-4.2.2.GA/server/messaging/>。
擴展配置:
1. Jboss默認的數據庫是HSQL數據庫,它是沒有事務的。如果換成了有事務的數據庫,但是並不需要使用集羣的話,需要把</jboss-4.2.2.GA/server/messaging/deploy/jboss-messaging.sar/xxxx-persistence-service.xml>中相關設置改成如下內容,否則會導致Jboss不能正常啓動
2. Messaging默認的用戶和權限內容是從配置文件中讀入的,如果需要從DB讀入,可以在文件</jboss-4.2.2.GA/server/messaging/conf/login-config.xml>中按以下修改。
<application-policy name = "messaging">
<authentication>
<!--
<login-module code = "org.jboss.security.auth.spi.UsersRolesLoginModule" flag = "required" >
<module-option name = "unauthenticatedIdentity">guest</module-option>
<module-option name = "usersProperties">props/messaging-users.properties</module-option>
<module-option name = "rolesProperties">props/messaging-roles.properties</module-option>
</login-module>
-->
<login-module code = "org.jboss.security.auth.spi.DatabaseServerLoginModule" flag = "required">
<module-option name = "unauthenticatedIdentity">guest</module-option>
<module-option name = "dsJndiName">java:/DefaultDS</module-option>
<module-option name = "principalsQuery">SELECT PASSWD FROM JBM_USER WHERE USER_ID=?</module-option>
<module-option name = "rolesQuery">SELECT ROLE_ID, 'Roles' FROM JBM_ROLE WHERE USER_ID=?</module-option>
</login-module>
</authentication>
</application-policy>
3.最好〈/jboss-4.2.2.GA/server/all/lib/jgroup.jar〉Copy到〈/jboss-4.2.2.GA/server/messaging/lib〉下。