メッセージタイプメッセージミドルウェア_ActiveMQ

ActiveMQのメッセージタイプ
JMS仕様メッセージタイプのTextMessage、MapMessageの、のObjectMessage、BytesMessageは、および他の5 StreamMessageの。ActiveMQのはまた、我々は合成五種類トランシーバコードの春JMSメッセージタイプを見て下方に、それぞれ対応して達成しました。
1、のTextMessage
/ * * 
     *向指定宛先发送テキスト消息
     * @param先
     * @paramメッセージ
     * / 
    公共 ボイドsendTxtMessage(宛先先、最終的な文字列メッセージ){
         場合ヌル == 先){ 
            宛先 = jmsTemplate.getDefaultDestination()。
        } 
        jmsTemplate.send(宛先、新しいMessageCreator(){
             公共メッセージcreateMessage(セッションセッション)スローたJMSException {
                 戻りsession.createTextMessage(メッセージ); 
            } 
        })。
        システム。アウト.println(" springJMSは、テキストメッセージを送信... " ); 
    }
コードの表示

2、のMapMessage

/ * * 
     *向指定宛先发送マップ消息
     * @param先
     * @paramメッセージ
     * / 
    公共 ボイドsendMapMessage(宛先先、最終的な文字列メッセージ){
         場合ヌル == 先){ 
            宛先 = jmsTemplate.getDefaultDestination()。
        } 
        jmsTemplate.send(宛先、新しいMessageCreator(){
             公共メッセージcreateMessage(セッションセッション)たJMSExceptionを{スロー
                際、MapMessage際、MapMessage = session.createMapMessage(); 
                mapMessage.setString(" MSGID " 、メッセージ)。
                返す際、MapMessageを。
            } 
        })。
        システム。アウト .println(" springJMSは、マップメッセージを送ります... " ); 
    }
コードの表示

3、のObjectMessage

/ * * 
     *向指定宛先发送序列化的对象
     * @param先
     * @param対象オブジェクト必须序列化
     * / 
    公共 ボイド sendObjectMessage(宛先先、最終的な直列化オブジェクト){
         場合ヌル == 先){ 
            宛先 = jmsTemplate。 getDefaultDestination(); 
        } 
        jmsTemplate.send(宛先、新しいMessageCreator(){
             公共メッセージcreateMessage(セッションセッション)たJMSExceptionが{スロー
                 戻り session.createObjectMessage(オブジェクト)。
            } 
        })。
        システム。アウト .println(" springJMSは、オブジェクトメッセージを送ります... " ); 
    }
コードの表示

4、交換のメッセージ

/ * * 
     *向指定宛先发送字节消息
     * @param先
     * @paramバイト
     * / 
    公共 ボイド sendBytesMessage(宛先先、最終バイト[]バイト){
         場合ヌル == 先){ 
            宛先 = jmsTemplate.getDefaultDestination() ; 
        } 
        jmsTemplate.send(宛先、新しいMessageCreator(){
             公共メッセージcreateMessage(セッションセッション)たJMSExceptionを{スロー
                BytesMessageはBytesMessageは = session.createBytesMessage()。
                bytesMessage.writeBytes(バイト)。
                返却はBytesMessageを。

            } 
        })。
        システム。アウト .println(" springJMSが...バイト・メッセージを送ります" ); 
    }
コードの表示

5、StreamMessageの

/ * * 
     *向默认队列发送ストリーム消息
     * / 
    公共 ボイドsendStreamMessage(宛先先){ 
        jmsTemplate.send(新しいMessageCreator(){
             公共メッセージcreateMessage(セッションセッション)たJMSException {スロー
                StreamMessageのメッセージを = session.createStreamMessage(); 
                メッセージ。 WriteStringメソッド(" ストリーム列" ); 
                message.writeInt(11111 );
                 戻りメッセージを; 
            } 
        })。
        システム。アウト .println(" springJMSは、ストレムメッセージを送ります... " ); 
    }
コードの表示

処理部を受け取るメッセージ:

/ * * 
     *対応する処理のためにメッセージの種類に応じて
     *先に共通@param先メッセージの送信/受信が
     * JMSExceptionを@throws 
     * / 
    公共 のボイド(あなたが先にしたいん)受信JMSExceptionを{スロー
        メッセージメッセージ = ; jmsTemplate.receiveを(あなたが欲しいんどこ)

        // もしテキストメッセージ
        IF (メッセージのTextMessageのinstanceof){ 
            のTextMessage(TM) = (のTextMessage)メッセージ、
            システム。OUT .println(" から" + destination.toString()+ " GETのTextMessage:\ T " + tm.getText())。
        }

        // 如果是マップ消息
        場合(MapMessageのinstanceofのメッセージ){ 
            際、MapMessage MM = (MapMessageの)メッセージ。
            システム。アウト .println(" から" + destination.toString()+ " を得るのTextMessage:\トン" + mm.getString(" MSGID " )); 
        } 

        // 如果是オブジェクト消息
        場合(メッセージのObjectMessageのinstanceof){ 
            のObjectMessage OM = (のObjectMessage)メッセージ。
            ExampleUser exampleUser = (ExampleUser)om.getObject(); 
            システム。アウト .println(" から" + destination.toString()+ " を得るのObjectMessage:\トン" 
                    + ToStringBuilder.reflectionToString(exampleUser)); 
        } 

        // 如果是バイト消息
        場合(BytesMessageはinstanceofのメッセージ){
             バイト [] B = 新しい バイト [ 1024 ];
            int型のlen = - 1 ; 
            BytesMessageはBM = (BytesMessageは)メッセージ。
            一方 - (!(LEN = bm.readBytes(B))= 1 ){ 
                システム。アウト .println(新しい文字列(B、0 、LEN)); 
            } 
        } 

        // 如果是ストリーム消息
        場合(StreamMessageのinstanceofのメッセージ){ 
            StreamMessageのSM = (StreamMessageの)メッセージ。
            システム。アウト.println(sm.readString()); 
            システム。アウト.println(sm.readInt()); 
        } 
    }
コードの表示

 

おすすめ

転載: www.cnblogs.com/51ma/p/11388187.html