之路 on it Road.com
将基本的 hornetq 配置文件放在 classpath 中。
hornetq-configuration.xml
< ?xml version="1.0"?> 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> </connector> </connectors> <acceptors> <acceptor name="netty-acceptor"> <factory -class>org.hornetq.integration.transports.netty.NettyAcceptorFactory </factory> </acceptor> </acceptors> <security -enabled>false</security>
启动服务器
package com.onitroad; import org.hornetq.core.config.impl.FileConfiguration; import org.hornetq.core.server.HornetQServer; import org.hornetq.core.server.HornetQServers; import org.hornetq.jms.server.JMSServerManager; import org.hornetq.jms.server.impl.JMSServerManagerImpl; public class EmbeddedServerDemo { public static void main(String[] args) throws Exception { try { //Load the file configuration first of all FileConfiguration configuration = new FileConfiguration(); configuration.setConfigurationUrl("hornetq-configuration.xml"); configuration.start(); //Create a new instance of hornetq server HornetQServer server = HornetQServers.newHornetQServer(configuration); //Wrap inside a JMS server 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); //Start the server jmsServerManager.start(); //WOO HOO System.out.println("HornetQ server started successfully !!"); } catch (Throwable e) { System.out.println("Well, you seems to doing something wrong. Please check if config files are in your classes folder."); e.printStackTrace(); } } }
输出示例
22 Mar, 2013 2:09:33 PM org.hornetq.core.logging.impl.JULLogDelegate info INFO: live server is starting.. 22 Mar, 2013 2:09:33 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:09:33 PM org.hornetq.core.logging.impl.JULLogDelegate info INFO: Using NIO Journal 22 Mar, 2013 2:09:33 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:09:33 PM org.hornetq.core.logging.impl.JULLogDelegate info INFO: Started Netty Acceptor version 3.1.5.GA-r1772 22 Mar, 2013 2:09:33 PM org.hornetq.core.logging.impl.JULLogDelegate info INFO: HornetQ Server version 2.0.0.GA (Hornet Queen, 113) started HornetQ server started successfully !!
配置连接器工厂并将配置文件放在类路径中。
hornetq-jms.xml
< ?xml version="1.0"?> 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"></connector> </connectors> <entries> <entry name="ConnectionFactory"></entry> </entries> </connection> <queue name="exampleQueue"> <entry name="exampleQueue"></entry> </queue>
使用以下命令创建一个maven项目并将其转换为eclipse java项目
mvn archetype:generate -DgroupId=com.onitroad -DartifactId=HornetQHelloWorld -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false cd HornetQHelloWorld mvn eclipse:eclipse
更新pom.xml文件并更新项目依赖
pom.xml
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/xsd/maven-4.0.0.xsd"> <modelversion>4.0.0</modelversion> <groupid>com.onitroad</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>
日期:2020-09-17 00:16:31 来源:oir作者:oir