青少年如何遵纪守法:JBossESB服务开发入门
来源:百度文库 编辑:偶看新闻 时间:2024/05/03 09:33:36
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 Name:HelloESB
Target Runtime:JBoss 4.2 Runtime
Configuration:Default 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”对话框中,输入如下信息:
Package:demo
Name:MyJMSListenerAction
SuperClass:org.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”对话框中输入如下信息:
Name:jboss-esb
单击“Finish”结束创建
(五) 配置JMS Providers
1、 双击打开jboss-esb.xml文件,在“JBoss ESB Editor”中选中“Providers”,在右边窗格中选择“Add”,在弹出的菜单中选择“JMS Provider”;
2、 在弹出的“ESB 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
(六) 配置Services
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类的方法 */
选择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类型为JAR的archives;
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服务开发成功!