在配置jms之前请先配置好jndi
http://blog.csdn.net/zj0078/article/details/7317234
1) JBOSS安装路径是
E:\ProgramFiles\Dev_Programe\jboss-5.0.0.GA. 数据库是Mysql5 那么就要先找到Mysql的JDBC驱动mysql-connector-java-5.1.18-bin.jar, 然后置于
E:\ProgramFiles\Dev_Programe\jboss-5.0.0.GA\server\default\lib .
2) 把E:\ProgramFiles\Dev_Programe\jboss-5.0.0.GA\docs\examples\jca\mysql-ds.xml copy 到
E:\ProgramFiles\Dev_Programe\jboss-5.0.0.GA\server\default\deploy
内容如(根据自己的实际情况修改):
<datasources>
<local-tx-datasource>
<jndi-name>MySqlDS</jndi-name>
<connection-url>jdbc:mysql://localhost:3306/jms</connection-url>
<driver-class>com.mysql.jdbc.Driver</driver-class>
<user-name>zj0078</user-name>
<password>XXXXXX</password>
<exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter</exception-sorter-class-name>
<metadata>
<type-mapping>mySQL</type-mapping>
</metadata>
</local-tx-datasource>
</datasources>
你可能已经注意到一个类似的文件hsqldb-ds.xml, 请不要理会它, 否则后果难以预料.
3) 把E:\ProgramFiles\Dev_Programe\jboss-5.0.0.GA\docs\examples\jms\mysql-persistence-service.xmlcopy至
E:\ProgramFiles\Dev_Programe\jboss-5.0.0.GA\server\default\deploy\messaging
然后把文件中所有的DefaultDS改为你在mysql-ds.xml中修改的JNDI-NAME,也就是MySqlDS.
接下来非常重要的一点, 找到<attribute name="Clustered">false</attribute>, 下面有两行注释
<!-- All the remaining properties only have to be specified if the post office is clustered.
You can safely comment them out if your post office is non clustered -->
说明如果Clustered为false的话, 把这个MBEAN剩下的属性都注释掉.
否则, 启动JBOSS会出现[...NOT FOUND Depends on 'jboss.jgroups:service=ChannelFactory...]的错误.
由于我没有设置群集, 所以要注释掉剩下的属性, 但是不要把Messaging JMS User Manager MBean config的内容也注释掉, 注意!
你可能已经注意到一个类似的文件hsqldb-persistence-service.xml, 把它删除.
4) 到目前为止, 如无意外, 已经配置成功了. 接下来运行JBOSS仔细查找看到
Bound ConnectionManager 'jboss.jca:service=DataSourceBinding,name=DefaultDS' to JNDI name 'java:DefaultDS'
Bound ConnectionManager 'jboss.jca:service=DataSourceBinding,name=MySqlDS‘ to JNDI name 'java:MySqlDS
Bound ConnectionManager 'jboss.jca:service=ConnectionFactoryBinding,name=JmsXA' to JNDI name 'java:JmsXA'
PS: 一般来说, 文件中是不可以出现中文字的, 注释也不行.