创建jboss7应用用户
通过“add-user.bat”创建应用用户,详细操作请google。
设置topic与权限
使用jboss的jms功能,需要用standalone-full.xml启动jboss。
把新创建用户的角色加入配置文件,如下;“guest”角色
<subsystem xmlns="urn:jboss:domain:messaging:1.1">
<hornetq-server>
……
<security-settings>
<security-setting match="#">
<permission type="send" roles="guest"/>
<permission type="consume" roles="guest"/>
<permission type="createNonDurableQueue" roles="guest"/>
<permission type="deleteNonDurableQueue" roles="guest"/>
</security-setting>
</security-settings>
创建topic
<subsystem xmlns="urn:jboss:domain:messaging:1.1">
<hornetq-server>
……
<jms-destinations>
<jms-topic name="flexTopic">
<entry name="topic/flex"/>
<entry name="java:jboss/exported/jms/topic/flex"/>
</jms-topic>
</jms-destinations>
配置flex的jms参数
配置flex端的“messaging-config.xml”文件,用户名密码对应新建的jboss用户,“jms/topic/flex”对应jboss端的JNDI
<destination id="chat-topic-jms">
……
<jms>
<connection-credentials username="用户名" password="密码"/>
<destination-type>Topic</destination-type>
<message-type>javax.jms.ObjectMessage</message-type>
<connection-factory>jms/RemoteConnectionFactory</connection-factory>
<destination-jndi-name>jms/topic/flex</destination-jndi-name>
<delivery-mode>NON_PERSISTENT</delivery-mode>
<message-priority>DEFAULT_PRIORITY</message-priority>
<acknowledge-mode>AUTO_ACKNOWLEDGE</acknowledge-mode>
<transacted-sessions>false</transacted-sessions>
ejb项目jar包添加module依赖
在“MANIFEST.MF”文件中添加"Dependencies: org.jboss.remote-naming,org.hornetq"
bean推送jms消息
MessageBroker messageBroker = MessageBroker.getMessageBroker(null);
AsyncMessage msg = new AsyncMessage();
msg.setDestination("chat-topic-jms");
msg.setHeader("header", "header");
msg.setClientId(UUIDUtils.createUUID());
msg.setMessageId(UUIDUtils.createUUID());
msg.setTimestamp(System.currentTimeMillis());
msg.setBody(obj);
messageBroker.routeMessageToService(msg, null);