配置jboss7與flex創建jms應用

建立jboss7應用用戶

        經過「add-user.bat」建立應用用戶,詳細操做請google。java

設置topic與權限

        使用jboss的jms功能,須要用standalone-full.xml啓動jboss。session

        把新建立用戶的角色加入配置文件,以下;「guest」角色dom

        <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>

    建立topicflex

<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端的JNDIgoogle

    <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"spa

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);
相關文章
相關標籤/搜索