营口公安局出入境管理:JBossESB服务开发入门

来源:百度文库 编辑:爱问知道 时间:2020/04/05 05:52:11
(一) 建立JBossESB用户库

1、 JBossTools中,选择菜单“Windows->preferences”;
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->project…”;
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=DestinationManagerdepends>

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=DestinationManagerdepends>

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_gatewaydepends>

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

jbossesb-deployment>

(九) 打包与部署

1、 JBossTools中,选择菜单“Window->Show view->Other->JBossTools->project 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.namingprg.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服务开发成功!
C++/游戏开发入门问题 如何快速入门pic16f873单片机开发? 移动软件开发如何入门啊 免费下载Delphi数据库开发入门与范例解析 什么是服务开发助理?主要负责什么? 做SP服务的话,需要开发短信网关么? 开发旅游资源的服务设施规划和基础设施规划 传易通”网络传真服务系统是谁开发的 问一个关于c#开发的windows服务的问题 开发基于WIINDOWS的WEB服务程序,该如何搭建开发环境 请推荐一本用vb.net开发生产报表系统的学习入门书 谁有应用软件开发、购买、软件技术服务等方面的合同样本 翻译:我公司的业务部负责公司的市场开发、客户交流和客户服务。 软件开发、IT服务、网络工程、监控系统方面的店长如何实施管理? 一项新服务的开发需要些什么具体前期准备或计划 想做个SNS个人社交服务网站,需要用那些语言开发? 湖北广海人才开发交流服务有限公司是一家正规的中介公司吗? vb开发的程序,为什么正常可以运行的做成服务却出现错误? 软件外包合同是如何区分开发合同与服务合同类别的 KTV服务软件一般都用什么开发工具软件做的? Web Service技术的概念?在Delphi环境下如何开发一个Web服务? c语言和java有什么区别?一初学者可以学哪个比较容易入门?百度网站是用什么程序开发的? 我现在在学习水晶报表在WinForm开发下的应用,有谁知道哪有比较入门级的教程案例吗 酷派728双模双待手机支持如“彩信”等中国移动开发的基于GPRS的服务吗?