本文主要介绍利用JBossTools工具开发JBossESB服务,以为初学者提供一个入门级的教程。
环境采用:Java EE IDE for Web Developers + JBossTools + JBossESB 4.7 + JBoss 5.1AS。环境的搭建在之前的一个系列中已经有所介绍,在此不赘述。
一、建立JBossESB项目
1、在Eclipse中选择FileàNewàProject…选择新建一个ESB项目。如下图所示。
2、在单击Next>后,需要填写项目的名称、运行该项目的服务器及采用的ESB的版本。设置如下所示:
Project name: helloworld
Target runtime: JBoss 5.1 Runtime (已经安装的版本)
JBoss ESB version: 4.7 (已经安装的版本)
3、在单击Next > 后进入下一个ESB facet配置页面,你可以在此声明java源文件的目录及ESB内容存放的目录。ESB内容目录包含了ESB归档所必须的重要文件,当然你也可以通过选择JBoss ESB运行时来配置ESB类库。它有两种选择:
a、 使用Server所提供的ESB运行时;
b、 选择你预先安装的一个ESB运行时。
在选择完成后,单击Finish即完成ESB Project的创建。
4、新建完项目后,会创建一个jboss-esb.xml的配置文件,首次打开它时会显示如下的格式。在做ESB配置时,该文件起着举足轻重的作用,没有该文件的配置是不可能把所有的Action及Message组织在一起,来完成整个业务逻辑的。
二、编写Action
1、 在JBossTools中,选中helloworld项目,右键单击,在弹出的上下文菜单中选择”New->Class”;
2、 弹出界面如下所示,在其中输入必要的信息。
Package:demo
Name:MyJMSListenerAction
SuperClass:org.jboss.soa.esb.actions.AbstractActionLifecycle;
单击”Finish”,结束创建MyJMSListenerAction类
3、 在新建类完成后,输入如下的代码:
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()); } } |
三、jboss-esb文件配置
3.1 配置JMS Providers
1、双击打开jboss-esb.xml文件,在”JBoss ESB Editor”中选中”Providers”,在右边窗格中选择”Add”,在弹出的菜单中选择”JMS Provider”;
2、在Add JMS Provider中输入如下信息的内容:
Name:JBossMQ
Connection Factory:ConnectionFactory
单击”Next”继续;
3、在ESB JMS Bus对话框中输入如下信息:
ID:helloworld_gateway_channel
单击”Finish”结束创建,
4、 选中”Providers->JBossMQ-> helloworld_gateway_channel->Filter”,在右边的窗格中输入:
Destination Name:queue/helloworld_request_gateway
5、 选中”JBossMQ”再添加一个ID为helloworld_esb_channel的EJB JMS Bus;
6、 选中”Providers->JBossMQ-> helloworld_esb_channel->Filter”,在右边的窗格中输入:
Destination Name:queue/helloworld_request_esb
3.2 配置Service
1、 在”JBoss ESB Editor”中选中”Services”,在右边窗格中选择”Add”
2、 在弹出的对话框中输入如下信息:
Name:HelloWorld
Category:HelloWorld
Description:a simple listener to say hello
选择Finish结束;
3、 选中”Services->HelloWorld->Listeners”,在右边窗格中选择”Add”,在出现的菜单中选择”JMS Listener”;
4、 在弹出的对话框中输入如下信息:
Name:helloworld_jms_gateway
Channel ID Ref:helloworld_gateway_channel
选择”Finish”结束
5、 在右边的属性窗格中输入如下信息:
MaxThreads:1
Is Gateway:true
6、 重复3~5再添加一个JMS Listener
Name:helloworld_jms_esb
Channel ID Ref:helloworld_esb_channel
7、 选中”Services->HelloWorld->Actions”,在右边窗格中选择”Add”;
8、 在出现的对话框中输入如下信息:
Name:DemoListener
Class:demo. MyJMSListenerAction /* 对应于前面创建的java类 */
Process:sayHello /* 对应于前面创建java类的方法 */
选择ok结束。
至此,关于ESB的Provider及Service已经全部配置完成。其中Provider中配置了网关及基本ESB channel。而Service中配置了Listeners及Actions。
四、建立JMS配置文件
在