Jboss+esb+实例开发文档.docx
《Jboss+esb+实例开发文档.docx》由会员分享,可在线阅读,更多相关《Jboss+esb+实例开发文档.docx(16页珍藏版)》请在冰豆网上搜索。
Jboss+esb+实例开发文档
Jbossesb实例开发文档
(su_jian)
1、必备条件
1)JBOSSESB服务器本实例用的是:
jbossesb-server-4.4.GA.zip。
解压后设置相关的环境变量,在上个文档中已经设置。
2)Eclipse:
Buildid:
20100218-1602,eclipse版本,eclipse-jee-galileo-SR2-win32.zip
3)eclipse插件版本:
JBossTools-Update-3.1.1.v201006011046R-H111-GA.zip
以上开发软件以及版本是相对应的,如果你想要其他版本的软件。
则必须注意:
相关的软件版本必须一致,否则就没有办法进行(jboss官网有相关插件与eclipse对应的版本信息);
2、开发实例
1)在eclipse里创建esb项目实例(相关插件安装上个文档已经说明)
(1)新建一个esb项目,如下图所示:
点击“next”如下图所示:
填写项目名称,选择TargetRuntime为:
Jboss4.2Runtime,选择JbossEsbversion为:
4.2。
点击“next”如下图所示:
点击“next”如下图所示:
点击“finish”完成。
项目结构图如下所示:
2)服务器可以选择JBOSS或者ESBServer
创建jboosserver:
点击"Preferences"找到“server”选项,然后点击"runtimeEnviroments"如下图所示:
点击“add”按钮,出现如下图所示:
选择Jbosscommunity->Jboss4.2Runtime点击“next”
选择HomeDirectory选择JbossEsb路径和JRE“Finish”然后完成就可以了。
3)写测试代码
项目包结构如下图所示:
(1)首先在esbcontent/META-INF下新建一个配置文件:
jboss-esb.xml
输入如下内容:
xmlversion="1.0"encoding="UTF-8"?
>
xmlns="
xmlns:
xsi="http:
//www.w3.org/2001/XMLSchema-instance"
xsi:
schemaLocation="http:
//anonsvn.jboss.org/repos/labs/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.0.1.xsd"
parameterReloadSecs="5">
dest-name="queue/quickstart_helloworld_Request_gw"/>
dest-name="queue/quickstart_helloworld_Request_esb"/>
description="HelloWorld">
is-gateway="true"/>
class="org.jboss.soa.esb.samples.quickstart.helloworld.MyJMSListenerAction"
process="displayMessage"/>
类中的Action的路径根据自己的需要自己修改。
(2)新建MyJMSListenerAction类
packageorg.jboss.soa.esb.samples.quickstart.helloworld;
importorg.jboss.soa.esb.actions.AbstractActionLifecycle;
importorg.jboss.soa.esb.helpers.ConfigTree;
importorg.jboss.soa.esb.message.Message;
/**
*jboss_esb开发
*@authorsu_jian
*/
publicclassMyJMSListenerActionextendsAbstractActionLifecycle{
protectedConfigTree_config;
publicMyJMSListenerAction(ConfigTreeconfig){
_config=config;
}
publicMessagedisplayMessage(Messagemessage)throwsException{
System.out.println("接受到的message是:
"+message.getBody().get());
returnmessage;
}
}
(3)在esbcontent目录下新建:
jbm-queue-service.xml
xmlversion="1.0"encoding="UTF-8"?
>
name="jboss.esb.quickstart.destination:
service=Queue,name=quickstart_helloworld_Request_esb"
xmbean-dd="xmdesc/Queue-xmbean.xml">
jboss.messaging:
service=ServerPeer
jboss.messaging:
service=PostOffice
name="jboss.esb.quickstart.destination:
service=Queue,name=quickstart_helloworld_Request_gw"
xmbean-dd="xmdesc/Queue-xmbean.xml">
jboss.messaging:
service=ServerPeer
jboss.messaging:
service=PostOffice
(4)最后新建esb部署文件deployment.xml在META-INF文件夹下:
jboss.esb.quickstart.destination:
service=Queue,name=quickstart_helloworld_Request_esb
jboss.esb.quickstart.destination:
service=Queue,name=quickstart_helloworld_Request_gw
发布工程到jboss服务器,并启动服务器:
(5)新建测试类
如下图所示就可以发布了。
然后新建测试类
packageorg.jboss.soa.esb.samples.quickstart.helloworld;
importjava.util.Properties;
importjavax.jms.JMSException;
importjavax.jms.ObjectMessage;
importjavax.jms.Queue;
importjavax.jms.QueueConnection;
importjavax.jms.QueueConnectionFactory;
importjavax.jms.QueueSender;
importjavax.jms.QueueSession;
importjavax.naming.Context;
importjavax.naming.InitialContext;
importjavax.naming.NamingException;
/**
*jboss_esb测试类
*@authorsu_jian
*/
publicclassSendJMSMessage{
QueueConnectionconn;
QueueSessionsession;
Queueque;
publicvoidsetupConnection()throwsJMSException,NamingException
{
Propertiesproperties1=newProperties();
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");
InitialContextiniCtx=newInitialContext(properties1);
Objecttmp=iniCtx.lookup("ConnectionFactory");
QueueConnectionFactoryqcf=(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("ConnectionStarted");
}
publicvoidstop()throwsJMSException
{
conn.stop();
session.close();
conn.close();
}
publicvoidsendAMessage(Stringmsg)throwsJMSException{
QueueSendersend=session.createSender(que);
ObjectMessagetm=session.createObjectMessage(msg);
send.send(tm);
send.close();
}
publicstaticvoidmain(Stringargs[])throwsException
{
SendJMSMessagesm=newSendJMSMessage();
sm.setupConnection();
sm.sendAMessage("这里是发送的消息");//这里输入消息文本
sm.stop();
}
}
(6)运行新建的测试类可以看到启动的jboss服务器中出现如下所示信息:
11:
28:
15,765INFO[STDOUT]接受到的message是:
这里是发送的消息
则表明调用成功!
OK