`
jiale.wang
  • 浏览: 41817 次
  • 性别: Icon_minigender_1
  • 来自: 南京
文章分类
社区版块
存档分类
最新评论

JBoss ESB with Eclipse入门例子

阅读更多

1 : 下载JBOSS ESB

http://www.jboss.org/jbossesb/downloads.html

 

本例使用版本4.7

2:安装Eclipse JBOSS plugin

http://download.jboss.org/jbosstools/updates/nightly/trunk/

help-->install new soft-->新增一个 location输入上面地址

有许多插件,只需选择JBoss AS Tools plugin和JBoss ESB Tools plugin

 

3: 在Eclipse里新建一个ESB项目:

安装好插件后点新建一个ESB项目 "New-->ESB-->ESB Project".

 

 

 

 

服务器可以选择JBOSS 或者ESB Server

 

Step 4:创建ESB project
首先在esbcontent/META-INF 下新建一个配置文件: jboss-esb.xml
输入如下内容

<?xml version = "1.0" encoding = "UTF-8"?>
<jbossesb xmlns="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.2.0.xsd"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.2.0.xsd http://anonsvn.jboss.org/repos/labs/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.2.0.xsd"
 parameterReloadSecs="5">
 <providers>  
          <jms-provider name="JBossMQ" connection-factory="ConnectionFactory">  
              <jms-bus busid="quickstartGwChannel">  
                  <jms-message-filter  
                      dest-type="QUEUE"  
                      dest-name="queue/quickstart_helloworld_Request_gw" />  
              </jms-bus>  
              <jms-bus busid="quickstartEsbChannel">  
                  <jms-message-filter  
                      dest-type="QUEUE"  
                      dest-name="queue/quickstart_helloworld_Request_esb"  />  
              </jms-bus>  
  
          </jms-provider>  
      </providers>  
         
      <services>  
        <service    
            category="FirstServiceESB"    
            name="SimpleListener"    
            description="Hello World">  
            <listeners>  
                <jms-listener name="JMS-Gateway"  
                    busidref="quickstartGwChannel"  
                    is-gateway="true"/>  
                <jms-listener name="helloWorld"  
                              busidref="quickstartEsbChannel" />  
            </listeners>  
            <actions mep="OneWay">  
                   <action name="action1"    
                    class="org.jboss.soa.esb.samples.quickstart.helloworld.MyJMSListenerAction"    
                    process="displayMessage"/>  
            </actions>       
        </service>  
      </services>  
 
 </jbossesb>

 <actions mep="OneWay"> 
                   <action name="action1"   
                    class="org.jboss.soa.esb.samples.quickstart.helloworld.MyJMSListenerAction"   
                    process="displayMessage"/> 
这个类根据自己实际路径修改

 

新建MyJMSListenerAction 类

 

package org.jboss.soa.esb.samples.quickstart.helloworld;

import org.jboss.soa.esb.actions.AbstractActionLifecycle;
import org.jboss.soa.esb.helpers.ConfigTree;
import org.jboss.soa.esb.message.Message;

public class MyJMSListenerAction extends AbstractActionLifecycle{
	protected ConfigTree  _config;   
    
	  public MyJMSListenerAction(ConfigTree config) {    
	   _config = config;    
	  }    
	  
	  public Message displayMessage(Message message) throws Exception{   
	           
	   System.out.println("Body: " +message.getBody().get());          
	   return message;    
	                   
	  }   

}

 

 

在esbcontent目录下新建: jbm-queue-service.xml .

<?xml version="1.0" encoding="UTF-8"?>
<server>
  <mbean code="org.jboss.jms.server.destination.QueueService"
    name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_helloworld_Request_esb"
    xmbean-dd="xmdesc/Queue-xmbean.xml">
	<depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
	<depends>jboss.messaging:service=PostOffice</depends>
  </mbean>
  <mbean code="org.jboss.jms.server.destination.QueueService"
    name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_helloworld_Request_gw"
    xmbean-dd="xmdesc/Queue-xmbean.xml">
    <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
	<depends>jboss.messaging:service=PostOffice</depends>
  </mbean>
</server>

 

最后新建 esb 部署文件 deployment.xml 在 META-INF 文件夹下:

<jbossesb-deployment>  
<depends>jboss.esb.quickstart.destination:service=Queue,name=quickstart_helloworld_Request_esb</depends>    
  <depends>jboss.esb.quickstart.destination:service=Queue,name=quickstart_helloworld_Request_gw</depends>  
</jbossesb-deployment>

 

 

发布工程到jboss服务器,并启动服务器

建立一个测试Client

package org.jboss.soa.esb.samples.quickstart.helloworld.test;

import java.util.Properties;

import javax.jms.JMSException;
import javax.jms.ObjectMessage;
import javax.jms.Queue;
import javax.jms.QueueConnection;
import javax.jms.QueueConnectionFactory;
import javax.jms.QueueSender;
import javax.jms.QueueSession;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;

public class SendJMSMessage {
	QueueConnection conn;   
    QueueSession session;   
    Queue que;   
       
       
    public void setupConnection() throws JMSException, NamingException   
    {   
        Properties properties1 = new Properties();   
        properties1.put(Context.INITIAL_CONTEXT_FACTORY,   
                "org.jnp.interfaces.NamingContextFactory");   
        properties1.put(Context.URL_PKG_PREFIXES,   
                "org.jboss.naming:org.jnp.interfaces");   
        properties1.put(Context.PROVIDER_URL, "jnp://127.0.0.1:1099");   
        InitialContext iniCtx = new InitialContext(properties1);   
  
        Object tmp = iniCtx.lookup("ConnectionFactory");   
        QueueConnectionFactory qcf = (QueueConnectionFactory) tmp;   
        conn = qcf.createQueueConnection();   
        que = (Queue) iniCtx.lookup("queue/quickstart_helloworld_Request_gw");   
        session = conn.createQueueSession(false, QueueSession.AUTO_ACKNOWLEDGE);   
        conn.start();   
        System.out.println("Connection Started");   
    }   
       
    public void stop() throws JMSException    
    {    
        conn.stop();   
        session.close();   
        conn.close();   
    }   
       
    public void sendAMessage(String msg) throws JMSException {   
           
        QueueSender send = session.createSender(que);           
        ObjectMessage tm = session.createObjectMessage(msg);   
           
        send.send(tm);           
        send.close();   
    }   
          
       
    public static void main(String args[]) throws Exception   
    {                      
        SendJMSMessage sm = new SendJMSMessage();   
        sm.setupConnection();   
        sm.sendAMessage("Hello World");//这里输入消息文本    
        sm.stop();    
    }   
}

 

运行客户端,会在服务器端看到

14:30:30,046 INFO  [STDOUT] Body: Hello World

 


 

分享到:
评论
1 楼 marktowhen 2015-03-03  
程序人生

相关推荐

    jboss esb 实例

    jboss esb 实例及讲解,我收集的资料整理做成书

    JBossTools实践系列:JBossESB服务开发入门

    JBossTools实践系列:JBossESB服务开发入门

    jbossesb开发手册

    - 在Eclipse中配置JBoss服务器实例。 - 添加JBoss ESB作为服务器插件。 #### 四、开发服务端WebService - 创建一个新的Java项目或Web项目。 - 使用Eclipse提供的向导创建WebService接口和服务实现。 - 配置部署...

    JBoss ESB新手指南

    作为新手入门,理解JBoss ESB的基本概念、功能以及如何操作至关重要。以下将详细阐述JBoss ESB的核心知识点。 1. **服务总线概念** 服务总线(ESB)是企业架构中的关键组件,它通过提供统一的消息传递和转换机制,...

    JbossESB开发环境配置.docx

    总结来说,配置Jboss ESB开发环境涉及安装Eclipse,添加JBoss Tools插件,设置环境变量以及理解如何发布和管理ESB工程。这个过程对于开发者来说至关重要,因为它提供了构建和测试ESB服务的基础。在熟悉这些步骤后,...

    Jboss ESB简介及开发实例

    一、Jboss ESB的简介 1、 什么是ESB。 ESB的全称是Enterprise Service Bus,即企业服务总线。ESB是过去消息中间件的发展,ESB采用了“总线”这样一种模式来管理和简化应用之间的集成拓扑结构,以广为接受的开放...

    JBoss ESB 例子

    JBoss ESB 入门例子。主要是一个Server和一个Client。

    JbossESB4.6 程序开发

    根据给定文件的信息,我们可以提炼出关于JBoss ESB 4.6程序开发的重要知识点,主要包括SOA平台配置、协议转换以及基于JMS的SOA实现机制等方面。 ### JBoss ESB 4.6 程序开发 #### 1. SOA 平台配置 在构建基于...

    JBoss ESB 开发指南

    《JBoss ESB 开发指南》是一部详尽的开发手册,不仅适合JBoss ESB的新手入门,也适合有经验的开发者深化技能。它通过理论与实践相结合的方式,引导读者逐步掌握JBoss ESB的核心技术和应用方法,是从事企业级集成项目...

    JBOSS ESB程序员指南

    3.8. JBossESB和它与SOA的关系 11 4. 第二章 企业服务总线 13 4.1. 概述 13 4.2. 构建的必要条件 15 4.3. 注册和存储 16 4.4. 创建服务 16 4.5. 服务的版本化 16 4.6. 集成遗留系统 17 5. 第三章 什么时候使用JBoss...

    JBossESB学习笔记(1-16全)

    JBossESB学习笔记 收集了网上1-16系列教程,笔记详细介绍了JBossESB各个组件的特性及配置文件的说明

    JBossESB学习笔记.rar_Jboss_ESB_esb和aop

    四、JBoss ESB实例 1. **服务发布**:创建一个Java服务,通过ESB API将其包装成ESB服务,然后注册到ESB服务器上。 2. **服务消费**:编写消费者客户端,通过ESB提供的API或SDK查找并调用已发布的服务。 3. **消息...

    基于JbossESB的需求与架构

    1.JBossESB的总体要求和我们应采取的架构方法的纲要。2.JBossESB的主要目的是提供一个部署,运行和管理的SOA基础结构。 3.SOA原则将贯穿于整个架构,而传统意义上ESB可能是它所提供功能的一狭小部分

    JBOSS_ESB_开发手册

    ### JBoss ESB 开发手册概览 #### JBoss ESB 的主要特性 JBoss ESB,即Enterprise Service Bus,是Red Hat JBoss家族中的一员,专注于企业级服务总线解决方案,旨在简化不同应用程序间的集成与通信。其核心功能...

    JBOSS_Esb学习资料

    1. **基础入门**:如《JBoss_ESB学习笔记5——第四个ESB应用Hello World File Action.doc》所示,初学者通常从“Hello World”程序开始,了解如何创建并运行一个简单的ESB服务。这一阶段会介绍ESB的基本概念,如服务...

Global site tag (gtag.js) - Google Analytics