打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
JBossESB服务开发入门
(一) 建立JBossESB用户库

1、 JBossTools中,选择菜单“Windows->
references”;
2、 在打开的“Preferences”对话框中,选择“Java->Build Path->User Libraries”;
3、 在右边的窗格中,选择“New”新建一个名为JBossESB的用户库;
4、 选中JBossESB用户库,选择“Add jars”将JBoss部署目录中如下子目录里的jar包加入到JBossESB用户库:
jbossesb.sar
jbossesb.esb
jbpm.esb
jbrules.esb
slsb.esb
smookes.esb
soap.esb
spring.esb
5、 选择“OK”,结束创建JBossESB用户库。
(二) 建立JBossESB项目

1、 JBossTools中,选择菜单“File->New->
roject…”;
2、 在打开的“Select a wizard”对话框中,选择“JavaEE->Utility Project”,点击“Next”继续;
3、 在打开的“Utility Module”对话框中,输入如下信息:
Project NameHelloESB
Target RuntimeJBoss 4.2 Runtime
ConfigurationDefault Configuration for JBoss 4.2 Runtime
点击“Finish”结束创建项目;
4、 选中HelloESB项目,右键单击,在弹出的上下文菜单中选择“Build Path->Configure Build Path…”;
5、 在弹出的属性对话框中,选择“Add Library…”;
6、 在弹出的“Add Library”对话框中,选择“User Library”,点击“Next”继续;
7、 在弹出的“User Library”对话框中,选中上面创建的“JBossESB”用户库,单击“Finish”回到属性对话框;
8、 单击“OK”,结束。
(三) 编写Action

1、 JBossTools中,选中HelloESB项目,右键单击,在弹出的上下文菜单中选择“New->Class”;
2、 在弹出的“Java Class”对话框中,输入如下信息:
Packagedemo
NameMyJMSListenerAction
SuperClassorg.jboss.soa.esb.actions.AbstractActionLifecycle
单击“Finish”,结束创建MyJMSListenerAction
3、 MyJMSListenerAction.java文件中,创建一个sayHello函数,最终代码如下:
package demo;

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 void sayHello(Message msg) {
System.out.println(”hello ” + msg.getBody().get());
}
}
(四) 建立ESB配置文件

1、 JBossTools中,选中HelloESB项目中的目录“src->META-INF”,右键单击,在弹出的上下文菜单中选择“New->Other…”;
2、 在弹出的“Select a wizard”对话框中,选择“ESB->ESB File”,选择“Next”继续;
3、 在弹出的“ESB File”对话框中输入如下信息:
Namejboss-esb
单击“Finish”结束创建
(五) 配置JMS Providers

1、 双击打开jboss-esb.xml文件,在“JBoss ESB Editor”中选中“Providers”,在右边窗格中选择“Add”,在弹出的菜单中选择“JMS Provider”;
2、 在弹出的“ESB JMS Provider”对话框中,输入如下信息:
NameJBossMQ
Connection FactoryConnectionFactory
单击“Next”继续;
3、 在弹出的“ESB JMS Bus”对话框中输入如下信息:
IDhelloworld_gateway_channel
单击“Finish”结束创建,
4、 选中“Providers->JBossMQ-> helloworld_gateway_channel->Filter”,在右边的窗格中输入:
Destination Namequeue/helloworld_request_gateway
5、 选中“JBossMQ”再添加一个IDhelloworld_esb_channelEJB JMS Bus
6、 选中“Providers->JBossMQ-> helloworld_esb_channel->Filter”,在右边的窗格中输入:
Destination Namequeue/helloworld_request_esb

(六) 配置Services

1、 在“JBoss ESB Editor”中选中“Services”,在右边窗格中选择“Add”,
2、 在弹出的对话框中输入如下信息:
NameHelloWorld
CategoryHelloWorld
Descriptiona simple listener to say hello
选择Finish结束;
3、 选中“Services->HelloWorld->Listeners”,在右边窗格中选择“Add”,在出现的菜单中选择“JMS Listener”;
4、 在弹出的对话框中输入如下信息:
Namehelloworld_jms_gateway
Channel ID Refhelloworld_gateway_channel
选择“Finish”结束
5、 在右边的属性窗格中输入如下信息:
MaxThreads1
Is Gatewaytrue
6、 重复3~5再添加一个JMS Listener
Namehelloworld_jms_esb
Channel ID Refhelloworld_esb_channel
7、 选中“Services->HelloWorld->Actions”,在右边窗格中选择“Add”;
8、 在出现的对话框中输入如下信息:
NameDemoListener
Classdemo. MyJMSListenerAction /* 对应于前面创建的java */
ProcesssayHello /* 对应于前面创建java类的方法 */
选择Finish结束

(七) 建立JMS配置文件

JBossTools中,选中src目录,新建一个名为helloworld-queue-service.xml文件,内容如下:

<?xml version=“1.0″ encoding=“UTF-8″?>

<server>

<mbean code=“org.jboss.mq.server.jmx.Queue”

name=“jboss-cn.esb.helloworld:service=Queue,name=helloworld_request_gateway”>

<depends optional-attribute-name=“DestinationManager”>

jboss.mq:service=DestinationManager</depends>

</mbean>

<mbean code=“org.jboss.mq.server.jmx.Queue”

name=“jboss-cn.esb.helloworld:service=Queue,name=helloworld_request_esb”>

<depends optional-attribute-name=“DestinationManager”>

jboss.mq:service=DestinationManager</depends>

</mbean>

</server>
注:该文件创建jbossesb配置文件指定的JMS 消息队列。

(八) 建立Deployment.xml

JBossTools中,选中“src->META-INF”目录,新建一个名为deployment.xml文件,内容如下:

<?xml version=“1.0″ encoding=“UTF-8″?>

<jbossesb-deployment>

<depends>jboss-cn.esb.helloworld:service=Queue,name=helloworld_request_gateway</depends>

<depends>jboss-cn.esb.helloworld:service=Queue,name=helloworld_request_esb</depends>

</jbossesb-deployment>

(九) 打包与部署

1、 JBossTools中,选择菜单“Window->Show view->Other->JBossTools->
roject archives”;
2、 在“Project archives”视图中,创建一个名为helloworld.esb类型为JARarchives
3、 选中刚才创建的helloworld.esb,新建一个includes为“*/”的fileset;右键单击,在出现的上下文菜单中选择“Build archive”创建helloworld.esb包;
4、 JBossTools中,选择“Servers”视图,将helloworld.esb部署到JBoss服务器上;启动JBoss,打开浏览器访问http://localhost:8080/jbossesb。如果成功部署,就会看到:

(十) 测试

注:这里的测试通过往JMS消息队列里发请求来测试

1、 JBossTools中,新建一个test包下的TestESB.java文件,其代码如下:

package test;

import java.util.Hashtable;



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 TestESB {



QueueConnection conn;


QueueSession session;


Queue que;




@SuppressWarnings(”unchecked”)


public void setupConnection() throws JMSException, NamingException


{


Hashtable properties = new Hashtable();


properties.put(Context.INITIAL_CONTEXT_FACTORY,


“org.jnp.interfaces.NamingContextFactory”);


properties.put(Context.URL_PKG_PREFIXES,


“org.jboss.naming

rg.jnp.interfaces”);


properties.put(Context.PROVIDER_URL, “jnp://127.0.0.1:1099″);


InitialContext iniCtx = new InitialContext(properties);



Object tmp = iniCtx.lookup(”ConnectionFactory”);


QueueConnectionFactory qcf = (QueueConnectionFactory) tmp;


conn = qcf.createQueueConnection();


que = (Queue) iniCtx.lookup(”queue/helloworld_request_gateway”);


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


{


TestESB sm = new TestESB();


sm.setupConnection();


sm.sendAMessage(” jboss-cn.com! “);


sm.stop();



}



}


2、 右键单击TestESB.java文件,以java应用程序的方式运行,就会在控制台看到:
10:41:02,281 INFO [STDOUT] hello jboss-cn.com!
恭喜您,第一个JBossESB服务开发成功!
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
JBoss ESB 4.x 介绍
几款开源ESB总线的比较
Web Service简介及开发实例
Java消息服务JMS详解
JBoss ESB配置說明
目前的开源ESB产品
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服