<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國際加速解決方案。 廣告
                # HornetQ 單體 – 基本的 JMS 消息傳遞示例 > 原文: [https://howtodoinjava.com/hornetq/basic-jms-messaging-example-using-hornetq-stand-alone-server/](https://howtodoinjava.com/hornetq/basic-jms-messaging-example-using-hornetq-stand-alone-server/) [**HornetQ**](http://hornetq.jboss.org "hornetq") 是一個開放源代碼項目,旨在構建多協議,可嵌入,非常高性能的集群異步消息傳遞系統。 HornetQ 支持 JMS 1.1 API,并且還定義了自己的消息傳遞 API,以實現最佳性能和靈活性。 HornetQ 一流的高性能日志以非持久消息傳遞通常看到的速度提供持久消息傳遞性能。 HornetQ 提供服務器復制和自動客戶端故障轉移功能,以消除服務器故障時丟失或重復的消息。 在上一篇文章中,我們了解了有關配置[**獨立 hornetq 服務器和基本配置**](//howtodoinjava.com/hornetq/hornetq-stand-alone-server-example-using-maven/)的信息。 讓我們繼續舉例。 在本文中,我們將學習將 JMS 消息發送到 hornetq 服務器上的隊列的機制,然后檢索這些消息。 步驟 1)使用以下命令創建一個 maven 項目并將其轉換為 Eclipse Java 項目 ```java mvn archetype:generate -DgroupId=com.howtodoinjava -DartifactId=HornetQHelloWorld -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false cd HornetQHelloWorld mvn eclipse:eclipse ``` 步驟 2)更新`pom.xml`文件并更新項目依賴項 **`pom.xml`** ```java <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.howtodoinjava</groupId> <artifactId>HornetQHelloWorld</artifactId> <packaging>jar</packaging> <version>1.0-SNAPSHOT</version> <name>HornetQHelloWorld</name> <url>http://maven.apache.org</url> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> <dependency> <groupId>org.hornetq</groupId> <artifactId>hornetq-core</artifactId> <version>2.0.0.GA</version> <scope>compile</scope> </dependency> <dependency> <groupId>org.hornetq</groupId> <artifactId>hornetq-jms</artifactId> <version>2.0.0.GA</version> <scope>compile</scope> </dependency> <dependency> <groupId>org.hornetq</groupId> <artifactId>hornetq-logging</artifactId> <version>2.0.0.GA</version> <scope>compile</scope> </dependency> <dependency> <groupId>org.hornetq</groupId> <artifactId>hornetq-transports</artifactId> <version>2.0.0.GA</version> <scope>compile</scope> </dependency> <dependency> <groupId>org.jboss.netty</groupId> <artifactId>netty</artifactId> <version>3.1.0.GA</version> </dependency> <dependency> <groupId>org.jboss.javaee</groupId> <artifactId>jboss-jms-api</artifactId> <version>1.1.0.GA</version> <scope>compile</scope> </dependency> </dependencies> </project> ``` 步驟 3)將基本的 hornetq 配置文件放在類路徑中。 **`hornetq-configuration.xml`** ```java <?xml version="1.0"?> <configuration xsi:schemaLocation="urn:hornetq /schema/hornetq-configuration.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:hornetq"> <connectors> <connector name="netty-connector"> <factory-class>org.hornetq.integration.transports.netty.NettyConnectorFactory </factory-class> </connector> </connectors> <acceptors> <acceptor name="netty-acceptor"> <factory-class>org.hornetq.integration.transports.netty.NettyAcceptorFactory </factory-class> </acceptor> </acceptors> <security-enabled>false</security-enabled> </configuration> ``` 步驟 4)配置連接器工廠,并將配置文件放置在`classpath`中。 **`hornetq-jms.xml`** ```java <?xml version="1.0"?> <configuration xsi:schemaLocation="urn:hornetq /schema/hornetq-jms.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:hornetq"> <!--the connection factory used by the example --> <connection-factory name="ConnectionFactory"> <connectors> <connector-ref connector-name="netty-connector" /> </connectors> <entries> <entry name="ConnectionFactory" /> </entries> </connection-factory> <queue name="exampleQueue"> <entry name="exampleQueue" /> </queue> </configuration> ``` 步驟 5)啟動服務器并測試消息傳遞代碼 **`HornetQMessageQueueDemo.java`** ```java package com.howtodoinjava; import java.util.HashMap; import java.util.Map; import javax.jms.Connection; import javax.jms.ConnectionFactory; import javax.jms.MessageConsumer; import javax.jms.MessageProducer; import javax.jms.Queue; import javax.jms.Session; import javax.jms.TextMessage; import org.hornetq.api.core.TransportConfiguration; import org.hornetq.api.jms.HornetQJMSClient; import org.hornetq.core.config.impl.FileConfiguration; import org.hornetq.core.server.HornetQServer; import org.hornetq.core.server.HornetQServers; import org.hornetq.integration.transports.netty.NettyConnectorFactory; import org.hornetq.integration.transports.netty.TransportConstants; import org.hornetq.jms.server.JMSServerManager; import org.hornetq.jms.server.impl.JMSServerManagerImpl; public class HornetQMessageQueueDemo { static void startServer() { try { FileConfiguration configuration = new FileConfiguration(); configuration.setConfigurationUrl("hornetq-configuration.xml"); configuration.start(); HornetQServer server = HornetQServers.newHornetQServer(configuration); JMSServerManager jmsServerManager = new JMSServerManagerImpl(server, "hornetq-jms.xml"); //if you want to use JNDI, simple inject a context here or don't call this method and make sure the JNDI parameters are set. jmsServerManager.setContext(null); jmsServerManager.start(); System.out.println("Server started !!"); } catch (Throwable e) { System.out.println("Damn it !!"); e.printStackTrace(); } } public static void main(String[] args) throws Exception { //Start the server startServer(); Connection connection = null; try { // Step 1\. Directly instantiate the JMS Queue object. Queue queue = HornetQJMSClient.createQueue("exampleQueue"); // Step 2\. Instantiate the TransportConfiguration object which // contains the knowledge of what transport to use, // The server port etc. Map<String, Object> connectionParams = new HashMap<String, Object>(); connectionParams.put(TransportConstants.PORT_PROP_NAME, 5445); TransportConfiguration transportConfiguration = new TransportConfiguration( NettyConnectorFactory.class.getName(), connectionParams); // Step 3 Directly instantiate the JMS ConnectionFactory object // using that TransportConfiguration ConnectionFactory cf = HornetQJMSClient.createConnectionFactory(transportConfiguration); // Step 4.Create a JMS Connection connection = cf.createConnection(); // Step 5\. Create a JMS Session Session session = connection.createSession(false,Session.AUTO_ACKNOWLEDGE); // Step 6\. Create a JMS Message Producer MessageProducer producer = session.createProducer(queue); // Step 7\. Create a Text Message TextMessage message = session.createTextMessage("How to do in java dot com"); System.out.println("Sent message: " + message.getText()); // Step 8\. Send the Message producer.send(message); // Step 9\. Create a JMS Message Consumer MessageConsumer messageConsumer = session.createConsumer(queue); // Step 10\. Start the Connection connection.start(); // Step 11\. Receive the message TextMessage messageReceived = (TextMessage) messageConsumer.receive(5000); System.out.println("Received message: " + messageReceived.getText()); } finally { if (connection != null) { connection.close(); } } } } Output in console: 22 Mar, 2013 2:23:36 PM org.hornetq.core.logging.impl.JULLogDelegate info INFO: live server is starting.. 22 Mar, 2013 2:23:36 PM org.hornetq.core.logging.impl.JULLogDelegate warn WARNING: AIO wasn't located on this platform, it will fall back to using pure Java NIO. If your platform is Linux, install LibAIO to enable the AIO journal 22 Mar, 2013 2:23:36 PM org.hornetq.core.logging.impl.JULLogDelegate info INFO: Using NIO Journal 22 Mar, 2013 2:23:36 PM org.hornetq.core.logging.impl.JULLogDelegate warn WARNING: Security risk! It has been detected that the cluster admin user and password have not been changed from the installation default. Please see the HornetQ user guide, cluster chapter, for instructions on how to do this. 22 Mar, 2013 2:23:36 PM org.hornetq.core.logging.impl.JULLogDelegate info INFO: Started Netty Acceptor version 3.1.5.GA-r1772 Server started !! 22 Mar, 2013 2:23:36 PM org.hornetq.core.logging.impl.JULLogDelegate info INFO: HornetQ Server version 2.0.0.GA (Hornet Queen, 113) started Sent message: How to do in java dot com Received message: How to do in java dot com ``` [**下載源代碼**](https://docs.google.com/file/d/0B7yo2HclmjI4b21RNVZFZm55dEU/edit?usp=sharing "下載源碼") **祝您學習愉快!**
                  <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>

                              哎呀哎呀视频在线观看