`
longgangbai
  • 浏览: 7272860 次
  • 性别: 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)...

    一个jms activemq Topic 消息实例

    一个jms activemq Topic 消息实例 关于jms JMS 是接口,相当于jdbc ,要真正使用它需要某些厂商进行实现 ,即jms provider 常见的jms provider 有 ActiveMQ JBoss 社区所研发的 HornetQ (在jboss6 中默认即可以...

    JBoss中间件解决方案及案例分析.pdf

    官方发布的Jboss解决方案 REDHat公司2010年度最新资料

    jboss学习资料/JBOSS使用指南

    JBOSS使用指南JBOSS使用指南JBOSS使用指南JBOSS使用指南JBOSS使用指南JBOSS使用指南JBOSS使用指南JBOSS使用指南

    JBoss中间件产品概览.pptx

    JBoss中间件产品概览.pptx

    hornetq使用指导手册(英文版)

    JBoss Enterprise Application Platform 5 HornetQ User Guide

    HornetQ 2_1用户手册

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

    中间件jboss环境搭建01

    常用中间件介绍,jboss环境搭建,对应JBOSS版本选择JDK版本

    最详细的JBOSS使用手册

    JBOSS使用手册 JBOSS使用手册 JBOSS使用手册

    jopr -jboss 工程师必备监控工具

    Jopr是一个企业级的JBoss中间件及其应用的集成化管理平台。 通过统一的图形化管理控制台,您可以管理和监控网络、操作系统、数据库等基础设施服务,也可以管理和监控Java虚拟机、JBoss Web、连接池等中间件,还...

    Jboss安装配置手册

    本指南旨在指导用户安装和配置 Jboss 中间件,包括数据库产品的安装、初始化数据库、Jboss 中间件的安装和配置服务。以下是详细的安装和配置步骤: 一、数据库产品的安装 在安装 Jboss 之前,需要安装相应的数据库...

    jboss反序列化漏洞检测工具

    jboss中间件的反序列化漏洞检测工具,可检测主机搭建的中间件并获得shell

    JBoss中间件漏洞总结1

    2. 下载并安装 Jboss6 3. 下载并安装 Jboss4 1. 升级新版本 3. 添加如下代码 http-invoker.sar 下 web.xml 的

    jboss使用详细操作步骤

    jboss使用详细操作步骤,jboss使用详细操作步骤,jboss使用详细操作步骤,jboss使用详细操作步骤

    HornetQ Messaging Developer's Guide.pdf

    HornetQ是java开源实现的消息系统框架,性能上比ActiveQ要好一些,被集成到JBoss的消息服务中。 Table of Contents Preface 1 Chapter 1: Getting Started with HornetQ 9 Chapter 2: Setting Up HornetQ 31 ...

    jboss drool5.1中文使用说明

    整理一下jboss drool5.1中文使用说明,doc格式

    JBOSS使用手册(中文版)

    JBOSS使用手册

    Hornetq2.1中文手册

    该文档是对Hornetq英文文档的翻译,对于英文不好的同学,有很大的帮助。

    Jboss ESB简介及开发实例

    ESB是过去消息中间件的发展,ESB采用了“总线”这样一种模式来管理和简化应用之间的集成拓扑结构,以广为接受的开放标准为基础来支持应用之间在消息、事件和服务的级别上动态的互连互通。 ESB是一种在松散耦合的...

    Jboss项目部署文档

    Jboss 项目部署文档 Jboss 项目部署文档是指在 Jboss 服务器上部署项目的详细步骤,包括环境变量的配置、项目打包、配置文件的修改、JNDI 的配置等。以下是 Jboss 项目部署文档的详细知识点: 一、环境变量配置 ...

Global site tag (gtag.js) - Google Analytics