<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # JMS 點對點消息示例 > 原文: [https://howtodoinjava.com/jms/jms-point-to-point-message-example/](https://howtodoinjava.com/jms/jms-point-to-point-message-example/) 在 [JMS 教程](//howtodoinjava.com/jms/jms-java-message-service-tutorial/)中,您了解了 JMS 消息傳遞域點對點域和[發送訂閱域](//howtodoinjava.com/jms/jms-publish-subscribe-message-example)。 在此示例中,我們將通過點對點消息傳遞域進行示例。 在點對點消息中,發送方將消息傳遞到隊列,**單個接收方從隊列**中取出消息。 接收者在發送消息時不需要監聽隊列。 ![Point to point JMS Messaging](https://img.kancloud.cn/75/46/7546d00ef5bc984e08adee27896a2b3d_575x135.png) 點對點 JMS 消息傳遞 ## 點對點消息發布者應用流程 下面給出了發送方應用的典型點對點消息傳遞示例。 該應用的以下步驟是: 1. 首先,我們將獲取 JMS 服務器的`InitialContext`對象。 2. 之后,使用初始上下文對象查找隊列對象。 3. 同樣,我們將使用初始上下文對象來查找隊列連接工廠。 4. 然后,使用隊列連接工廠來創建隊列連接,因為它表示 JMS 服務器的物理連接。 5. 創建隊列連接工廠后,我們將創建隊列會話,其中第一個參數將決定會話是否被事務處理。 但是,我們將使用非事務會話。 6. 此后,為隊列創建一個隊列發送者,然后創建一條消息。 7. 然后將諸如“`Hello World`”之類的消息發送到隊列對象。 8. 關閉隊列連接后,關閉隊列連接后,它將自動關閉會話和隊列發送者。 讓我們看下面的例子: ```java package pointToPoint; import javax.naming.InitialContext; import javax.jms.Queue; import javax.jms.Session; import javax.jms.TextMessage; import javax.jms.QueueSender; import javax.jms.DeliveryMode; import javax.jms.QueueSession; import javax.jms.QueueConnection; import javax.jms.QueueConnectionFactory; public class Sender { public static void main(String[] args) throws Exception { // get the initial context InitialContext context = new InitialContext(); // lookup the queue object Queue queue = (Queue) context.lookup("queue/queue0"); // lookup the queue connection factory QueueConnectionFactory conFactory = (QueueConnectionFactory) context.lookup ("queue/connectionFactory"); // create a queue connection QueueConnection queConn = conFactory.createQueueConnection(); // create a queue session QueueSession queSession = queConn.createQueueSession(false, Session.DUPS_OK_ACKNOWLEDGE); // create a queue sender QueueSender queSender = queSession.createSender(queue); queueSender.setDeliveryMode(DeliveryMode.NON_PERSISTENT); // create a simple message to say "Hello World" TextMessage message = queSession.createTextMessage("Hello World"); // send the message queSender.send(message); // print what we did System.out.println("Message Sent: " + message.getText()); // close the queue connection queConn.close(); } } ``` ## 點對點消息傳遞訂閱者應用流程 接收方的大多數步驟與發送方應用相同 – 除了它將監聽消息而不是發送 JMS 消息外。 ```java package pointToPoint; import javax.naming.InitialContext; import javax.jms.Queue; import javax.jms.Session; import javax.jms.TextMessage; import javax.jms.QueueSession; import javax.jms.QueueReceiver; import javax.jms.QueueConnection; import javax.jms.QueueConnectionFactory; public class Receiver { public static void main(String[] args) throws Exception { // get the initial context InitialContext context = new InitialContext(); // lookup the queue object Queue queue = (Queue) context.lookup("queue/queue0"); // lookup the queue connection factory QueueConnectionFactory conFactory = (QueueConnectionFactory) context.lookup ("queue/connectionFactory"); // create a queue connection QueueConnection queConn = conFactory.createQueueConnection(); // create a queue session QueueSession queSession = queConn.createQueueSession(false, Session.AUTO_ACKNOWLEDGE); // create a queue receiver QueueReceiver queReceiver = queSession.createReceiver(queue); // start the connection queConn.start(); // receive a message TextMessage message = (TextMessage) queueReceiver.receive(); // print the message System.out.println("Message Received: " + message.getText()); // close the queue connection queConn.close(); } } ``` 在上面的代碼中,接收方將接收來自發送方的消息并進行打印,即 HelloWorld。 但是,如果未啟動連接,則方法接收器將被阻塞,直到其他任何線程啟動連接為止。 學習愉快!
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看