`
longgangbai
  • 浏览: 7349199 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

JBOSS 消息中间件hornetq的使用(一)

阅读更多

             hornetq 的使用实例如下,采用简单的嵌入式容器实现简单的HornetQ发送消息的简单实例。

关于hornetq的两个核心的配置文件为,hornetq-beans.xml和hornet-configuration.xml配置:

hornetq-beans.xml的配置如下:

<?xml version="1.0" encoding="UTF-8"?>
<deployment xmlns="urn:jboss:bean-deployer:2.0">

    <!--创建 MBean server -->
   <bean name="MBeanServer" class="javax.management.MBeanServer">
      <constructor factoryClass="java.lang.management.ManagementFactory"
                   factoryMethod="getPlatformMBeanServer"/>
   </bean>

   <!-- 创建一个核心文件配置 The core configuration -->
   <bean name="Configuration" class="org.hornetq.core.config.impl.FileConfiguration"/>

   <!-- 创建一个安全管理 The security manager -->
   <bean name="HornetQSecurityManager" class="org.hornetq.spi.core.security.HornetQSecurityManagerImpl">
      <start ignored="true"/>
      <stop ignored="true"/>
   </bean>

   <!--创建一个核心服务器 The core server -->
   <bean name="HornetQServer" class="org.hornetq.core.server.impl.HornetQServerImpl">
      <constructor>
         <parameter>
            <inject bean="Configuration"/>
         </parameter>
         <parameter>
            <inject bean="MBeanServer"/>
         </parameter>
         <parameter>
            <inject bean="HornetQSecurityManager"/>
         </parameter>
      </constructor>
   </bean>


</deployment>

 

hornetq-configuration.xml配置如下:

<configuration xmlns="urn:hornetq"
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xsi:schemaLocation="urn:hornetq /schema/hornetq-configuration.xsd">

   
   <!-- Acceptors -->
   <acceptors>
      <acceptor name="netty-acceptor">
         <factory-class>org.hornetq.core.remoting.impl.netty.NettyAcceptorFactory</factory-class>    
         <param key="tcp-no-delay" value="false"/>
         <param key="tcp-send-buffer-size" value="1048576"/>
         <param key="tcp-receive-buffer-size" value="1048576"/>
      </acceptor>
   </acceptors>
    <!-- 安全限制的设置 -->
   <security-enabled>false</security-enabled>
   <!-- 持久化操作的 -->
   <persistence-enabled>false</persistence-enabled>
 
</configuration>

 

 

hornetq的嵌入式代码实现如下:

package com.easyway.hornetq.server;
import java.util.Date;
import org.hornetq.api.core.TransportConfiguration;
import org.hornetq.api.core.client.*;
import org.hornetq.core.remoting.impl.netty.NettyConnectorFactory;
import org.hornetq.integration.bootstrap.HornetQBootstrapServer;
/**
 *
 *创建嵌入式的容器发送和创建消息
 * 
 * @author longgangbai
 *
 */
public class EmbeddedMicroContainer
{

   public static void main(final String[] args)
   {

      HornetQBootstrapServer hornetQ = null;
      try
      {
    	 //1.启动相关的服务
    	// Step 1. Start the server
         hornetQ = new HornetQBootstrapServer("./hornetq-beans.xml");
         hornetQ.run();

         //2.使用对象创建相关的客户端工厂 ,不采用JNDI环境创建创建相关的实例
         // Step 2. As we are not using a JNDI environment we instantiate the objects directly
         ClientSessionFactory sf = HornetQClient.createClientSessionFactory(new TransportConfiguration(NettyConnectorFactory.class.getName()));

         //3.创建一个核心会话信息并创建相关的队列
         //Step 3. Create a core queue
         ClientSession coreSession = sf.createSession(false, false, false);

         final String queueName = "queue/longgangbai";

         coreSession.createQueue(queueName, queueName, true);

         coreSession.close();

         ClientSession session = null;

         try
         {
            // Step 4. Create the session, and producer
        	//创建一个会话和创建者
            session = sf.createSession();
            ClientProducer producer = session.createProducer(queueName);

            // Step 5. Create and send a message
            //6.创建消息并发送消息
            ClientMessage message = session.createMessage(false);

            final String propName = "myprop";
            message.putStringProperty(propName, "Hello sent at " + new Date());

            System.out.println("Sending the message.");
            //发送相关的消息
            producer.send(message);

            // Step 6. Create the message consumer and start the connection
            //6.创建消息的消费者并连接相关的连接
            ClientConsumer messageConsumer = session.createConsumer(queueName);
            session.start();

            // Step 7. Receive the message.
            ClientMessage messageReceived = messageConsumer.receive(1000);
            //获取相关的字符串信息
            System.out.println("Received TextMessage:" + messageReceived.getStringProperty(propName));
         }
         finally
         {
            // Step 8. Be sure to close our resources!
        	 //8.关闭相关的队列
            if (session != null)
            {
               session.close();
            }

            // Step 9. Shutdown the container
            //9.关闭相关的容器
            if (hornetQ != null)
            {
               hornetQ.shutDown();
            }
         }
      }
      catch (Exception e)
      {
         e.printStackTrace();
         System.exit(-1);
      }
   }

 

分享到:
评论
3 楼 hnjwlwj 2011-11-17  
上面hornet-configuration.xml 这个文件名错了,应该是hornetq-configuration.xml
2 楼 longgangbai 2011-10-23  
Configuration
eclipseek 写道
你好,我按照你这个步骤,做了个内嵌的hornet的实例,报了下面的错误:
--------------------------------------------------------------------------------
log4j:WARN No appenders could be found for logger (org.jboss.kernel.KernelFactory).
log4j:WARN Please initialize the log4j system properly.
2011-10-20 17:03:48 org.hornetq.core.logging.impl.JULLogDelegate error
严重: Failed to start server
java.lang.IllegalStateException: Incompletely deployed:

DEPLOYMENTS IN ERROR:
  Deployment "Configuration" is in error due to: java.net.MalformedURLException: no protocol: hornetq-configuration.xml

DEPLOYMENTS MISSING DEPENDENCIES:
  Deployment "HornetQServer" is missing the following dependencies:
    Dependency "Configuration" (should be in state "Installed", but is actually in state "**ERROR**")

at org.jboss.kernel.plugins.deployment.AbstractKernelDeployer.internalValidate(AbstractKernelDeployer.java:278)
at org.jboss.kernel.plugins.deployment.AbstractKernelDeployer.validate(AbstractKernelDeployer.java:174)
at org.hornetq.integration.bootstrap.HornetQBootstrapServer.bootstrap(HornetQBootstrapServer.java:158)
at org.jboss.kernel.plugins.bootstrap.AbstractBootstrap.run(AbstractBootstrap.java:83)
at org.hornetq.integration.bootstrap.HornetQBootstrapServer.run(HornetQBootstrapServer.java:116)
at honetq.EmbeddedMicroContainer.main(EmbeddedMicroContainer.java:56)
java.lang.IllegalStateException: Incompletely deployed:

DEPLOYMENTS IN ERROR:
  Deployment "Configuration" is in error due to: java.net.MalformedURLException: no protocol: hornetq-configuration.xml

DEPLOYMENTS MISSING DEPENDENCIES:
  Deployment "HornetQServer" is missing the following dependencies:
    Dependency "Configuration" (should be in state "Installed", but is actually in state "**ERROR**")

at org.jboss.kernel.plugins.deployment.AbstractKernelDeployer.internalValidate(AbstractKernelDeployer.java:278)
at org.jboss.kernel.plugins.deployment.AbstractKernelDeployer.validate(AbstractKernelDeployer.java:174)
at org.hornetq.integration.bootstrap.HornetQBootstrapServer.bootstrap(HornetQBootstrapServer.java:158)
at org.jboss.kernel.plugins.bootstrap.AbstractBootstrap.run(AbstractBootstrap.java:83)
at org.hornetq.integration.bootstrap.HornetQBootstrapServer.run(HornetQBootstrapServer.java:116)
at honetq.EmbeddedMicroContainer.main(EmbeddedMicroContainer.java:56)
--------------------------------------------------------------------------------

经过调试,发现是在执行hornetQ.run()这句的时候,报的异常,请高手帮我看看为何呢?


不知道你在JBoss下面配置哪个Hornetq的部署目录了吗?貌似你没有配置
1 楼 eclipseek 2011-10-20  
你好,我按照你这个步骤,做了个内嵌的hornet的实例,报了下面的错误:
--------------------------------------------------------------------------------
log4j:WARN No appenders could be found for logger (org.jboss.kernel.KernelFactory).
log4j:WARN Please initialize the log4j system properly.
2011-10-20 17:03:48 org.hornetq.core.logging.impl.JULLogDelegate error
严重: Failed to start server
java.lang.IllegalStateException: Incompletely deployed:

DEPLOYMENTS IN ERROR:
  Deployment "Configuration" is in error due to: java.net.MalformedURLException: no protocol: hornetq-configuration.xml

DEPLOYMENTS MISSING DEPENDENCIES:
  Deployment "HornetQServer" is missing the following dependencies:
    Dependency "Configuration" (should be in state "Installed", but is actually in state "**ERROR**")

at org.jboss.kernel.plugins.deployment.AbstractKernelDeployer.internalValidate(AbstractKernelDeployer.java:278)
at org.jboss.kernel.plugins.deployment.AbstractKernelDeployer.validate(AbstractKernelDeployer.java:174)
at org.hornetq.integration.bootstrap.HornetQBootstrapServer.bootstrap(HornetQBootstrapServer.java:158)
at org.jboss.kernel.plugins.bootstrap.AbstractBootstrap.run(AbstractBootstrap.java:83)
at org.hornetq.integration.bootstrap.HornetQBootstrapServer.run(HornetQBootstrapServer.java:116)
at honetq.EmbeddedMicroContainer.main(EmbeddedMicroContainer.java:56)
java.lang.IllegalStateException: Incompletely deployed:

DEPLOYMENTS IN ERROR:
  Deployment "Configuration" is in error due to: java.net.MalformedURLException: no protocol: hornetq-configuration.xml

DEPLOYMENTS MISSING DEPENDENCIES:
  Deployment "HornetQServer" is missing the following dependencies:
    Dependency "Configuration" (should be in state "Installed", but is actually in state "**ERROR**")

at org.jboss.kernel.plugins.deployment.AbstractKernelDeployer.internalValidate(AbstractKernelDeployer.java:278)
at org.jboss.kernel.plugins.deployment.AbstractKernelDeployer.validate(AbstractKernelDeployer.java:174)
at org.hornetq.integration.bootstrap.HornetQBootstrapServer.bootstrap(HornetQBootstrapServer.java:158)
at org.jboss.kernel.plugins.bootstrap.AbstractBootstrap.run(AbstractBootstrap.java:83)
at org.hornetq.integration.bootstrap.HornetQBootstrapServer.run(HornetQBootstrapServer.java:116)
at honetq.EmbeddedMicroContainer.main(EmbeddedMicroContainer.java:56)
--------------------------------------------------------------------------------

经过调试,发现是在执行hornetQ.run()这句的时候,报的异常,请高手帮我看看为何呢?

相关推荐

    HornetQ 2.1 中文文档

    HornetQ是JBoss社区所研发的开放源代码消息中间件;HornetQ是以Java 5 编写,因此只需要操作系统支持Java虚拟机,HornetQ便可运行。 支持Java消息服务 (JMS) 1.1 版本 集群 (Clustering) 支持庞大的消息(Message)...

    Hornetq2.1中文手册

    HornetQ 是 JBoss 社区开发的一个开源消息传递系统,它支持 Message Queuing (MQ) 协议,能够高效地处理分布式系统中的异步通信。 1. **法律声明**:在开始使用 HornetQ 之前,用户需要了解相关的法律条款和使用...

    HornetQ官方学习资料

    HornetQ是一款由JBoss开发并维护的消息中间件,它具备高度的可扩展性和灵活性,能够支持集群部署以及多种消息传递协议。HornetQ不仅完全支持JMS(Java Message Service)标准,还提供了自身定制的消息API,从而能够...

    hornetq-2.3.0.Final-bin.zip

    HornetQ是JBoss公司开发的一个开源的消息中间件(Message Broker),它提供高效、可扩展、高可用性的消息传递服务。在hornetq-2.3.0.Final-bin.zip这个压缩包中,包含了HornetQ 2.3.0 Final版本的所有组件和必要的...

    hermes 监听hornetq JMS配置步奏

    HornetQ是一个高性能、轻量级且完全开源的消息中间件,它提供了JMS(Java消息服务)接口,允许各种Java应用进行异步通信。Hermes则是一款图形化工具,专门用于监控和管理JMS服务器,如HornetQ,它提供了友好的用户...

    HornetQ2.1中文手册.7z

    HornetQ是JBoss公司开发的一个开源消息中间件,它在Java消息服务(JMS)规范的基础上提供了高效、可扩展且高度可靠的异步通信功能。这个“HornetQ 2.1中文手册”是一个压缩包文件,包含了对HornetQ 2.1版本的详细...

    Jboss事物处理

    首先,**HornetQ**是JBoss的一个开源消息传递系统,它提供了高性能、高可用性和可扩展性的消息队列服务。在分布式事务处理中,HornetQ常作为异步通信的核心,通过消息中间件实现服务间的解耦,并保证消息的可靠传输...

    HornetQ 2_1用户手册

    HornetQ 是一个消息中间件(MoM)。有关MoM和其它消息相关的概念解释请参见 Chapter 4, 消息的相关概念。 * 要了解有关HornetQ的更多信息请访问 http://www.jboss.org/community/wiki/HornetQGeneralFAQs。 为...

    JBOSS开发人员指南

    JBoss早期版本使用HornetQ作为内置消息服务器,后来转向了ActiveMQ。开发者需要熟悉这两个组件的使用和配置。 八、性能优化与监控 8.1 资源调优 通过调整内存设置、线程池大小、连接池参数等,开发者可以提高JBoss...

    hornetq-journal-2.3.19.Final.zip

    【标题】"hornetq-journal-2.3.19.Final.zip" 提供的是HornetQ消息中间件的一个组件——Journal模块的特定版本。HornetQ是JBoss社区开发的一个高性能、可扩展且功能丰富的开源消息传递系统,它被广泛用于企业级应用...

    (转)JBOSS7.1下开发JMS(HoernetQ)的示例DEMO

    在本文中,我们将深入探讨如何在JBoss Application Server 7.1 (JBoss AS 7.1)环境中开发Java消息服务(JMS)应用程序,特别是使用HornetQ作为消息中间件。HornetQ是JBoss AS 7内置的消息传递系统,它为分布式通信...

    jboss 7 配置 jms

    - JMS 提供了一种基于消息的中间件接口,使得应用能够通过消息进行异步通信。 - JMS 支持两种主要的消息模型:点对点(Point-to-Point, PTP)和发布/订阅(Publish/Subscribe, Pub/Sub)。 - 主要组件包括:消息...

    JBOSS-7.0.2-Final包

    标签"JBOSS"暗示了这个包与整个JBoss生态系统相关,这意味着它可能包含了一系列的工具和服务,如数据缓存(Infinispan)、消息队列( HornetQ )、事务处理(JTA)、安全认证(JAAS)等。这些组件使得JBoss成为一个...

    HornetQ2.0.0GA

    6. 容易集成:HornetQ 可以轻松集成到基于Java的任何应用程序中,包括但不限于Spring框架,以及JBoss应用服务器,因为HornetQ 原生是JBoss AS的一部分。 7. 集成开发环境:HornetQ 提供了强大的管理控制台和API,...

    jboss解压版

    JBoss,全称为Red Hat JBoss Middleware,是Red Hat公司推出的一款开源中间件产品,主要应用于企业级Java应用服务器领域。这个"jboss解压版"很可能是JBoss的源码或者预编译版本,供开发者学习、测试或部署使用。下面...

    jboss 第二部分

    6. HornetQ:HornetQ是JBoss的一个高性能、可扩展的消息中间件,支持JMS(Java Message Service)。它为JBoss提供可靠的消息传递服务,允许异步通信和解耦应用程序组件。 7. Codehaus:Codehaus是一个开源软件基金...

    jboss-eap-6.4.0.zip

    JBoss EAP 6.4 是 Red Hat 提供的一个企业级应用服务器,它基于 Java EE 6 规范,提供了全面的中间件服务,用于构建、部署和管理企业级应用程序。这个版本是 JBoss 产品线的一个关键里程碑,因为它包含了众多功能...

    jboss-eap-7.1.0

    5. **消息传递**:通过集成 HornetQ,EAP 7.1.0提供了高可用的消息中间件,支持JMS(Java Message Service),可用于异步处理和解耦应用程序组件。 6. **集群与高可用性**:JBoss EAP 7.1.0支持集群部署,能实现...

    jboss7 + EJB3

    JBOSS7是Red Hat公司开发的一款开源Java应用服务器,它基于Java EE 6(Enterprise JavaBeans 3.1)规范,提供了全面的中间件服务,包括Servlet、JSP、JSF、EJB、JMS等。EJB3是Java EE平台中的一个核心组件,它极大地...

    基于Jboss的jms编程

    `ConnectionFactory`是JMS中的核心接口,代表了一个到消息中间件的连接池。这里的`jndiName`设为`ConnectionFactory`,意味着在Jboss的JNDI上下文中有一个对应的资源。 4. **JMS模板**: `JmsTemplate`是Spring...

Global site tag (gtag.js) - Google Analytics