JBoss ESB学习笔记12第十一个ESB应用Spring Hello World.docx

上传人:b****6 文档编号:4267101 上传时间:2022-11-28 格式:DOCX 页数:11 大小:58.72KB
下载 相关 举报
JBoss ESB学习笔记12第十一个ESB应用Spring Hello World.docx_第1页
第1页 / 共11页
JBoss ESB学习笔记12第十一个ESB应用Spring Hello World.docx_第2页
第2页 / 共11页
JBoss ESB学习笔记12第十一个ESB应用Spring Hello World.docx_第3页
第3页 / 共11页
JBoss ESB学习笔记12第十一个ESB应用Spring Hello World.docx_第4页
第4页 / 共11页
JBoss ESB学习笔记12第十一个ESB应用Spring Hello World.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

JBoss ESB学习笔记12第十一个ESB应用Spring Hello World.docx

《JBoss ESB学习笔记12第十一个ESB应用Spring Hello World.docx》由会员分享,可在线阅读,更多相关《JBoss ESB学习笔记12第十一个ESB应用Spring Hello World.docx(11页珍藏版)》请在冰豆网上搜索。

JBoss ESB学习笔记12第十一个ESB应用Spring Hello World.docx

JBossESB学习笔记12第十一个ESB应用SpringHelloWorld

JBossESB学习笔记12——第十一个ESB应用SpringHelloWorld

续上篇介绍了第十个ESB应用,本文介绍第十一个ESB应用——SpringHelloWorld。

1概述

本实例主要演示了基于spring的action调用,这里需要引用spring相关的jar包,这些jar包都可以在所下载的jbossesb中找到。

2新建ESB工程

新建ESB工程,在jbossesb-server-4.7中找到以下两个jar包:

jbossesb-spring.jar和spring-2.5.6.SEC01.jar,并将这两个jar包复制到esbcontent/lib目录下,同时添加到项目的classpath。

至于这两个jar包的具体位置,不记得了,可以直接搜索找到。

3ESB配置

3.1创建消息队列

Xml代码

1

xmlversion="1.0"encoding="UTF-8"?

>

2

3

service=Queue,name=springhelloworldRequest"xmbean-dd="xmdesc/Queue-xmbean.xml">

4

5jboss.messaging:

service=ServerPeer

6

7jboss.messaging:

service=PostOffice

8

9

service=Queue,name=springhelloworldResponse"xmbean-dd="xmdesc/Queue-xmbean.xml">

10

11jboss.messaging:

service=ServerPeer

12

13jboss.messaging:

service=PostOffice

14

15

service=Queue,name=springhelloworldEsb"xmbean-dd="xmdesc/Queue-xmbean.xml">

16

17jboss.messaging:

service=ServerPeer

18

19jboss.messaging:

service=PostOffice

20

21

3.2定义Provider

这里将定义一个JMSProvider,并定义2个消息通道,内容如下:

Xml代码

22

23

24

25dest-type="QUEUE"/>

26

27

28

29dest-type="QUEUE"/>

30

31

3.3定义Service

Xml代码

32

33World"name="SpringHelloWorldService">

34

35

36

37

38

3.4定义Listener

Xml代码

39

40

41name="gwListener"/>

42

43

3.5定义JavaBean

Java代码

44/***********************************************************************

45*

ProjectName:

springhelloworld

46*

FileName:

com.thu.afa.esb.jbossesb.action.SaySomething.java

47*

Copyright:

Copyright(c)2010

48*

Company:

49***********************************************************************/

50packagecom.thu.afa.esb.jbossesb.action;

51

52/**

53*

ClassName:

SaySomething

54*

Description:

55*@authorAfa

56*@date2010-9-16

57*@version1.0

58*/

59publicclassSaySomething

60{

61privateStringgreeting;

62

63publicStringgetGreeting()

64{

65returngreeting;

66}

67

68publicvoidsetGreeting(Stringgreeting)

69{

70this.greeting=greeting;

71}

72

73}

说明:

这是一个普通的JavaBean,为后面验证spring在ESB中的IOC功能而引入。

3.6定义Action

Java代码

74/***********************************************************************

75*

ProjectName:

springhelloworld

76*

FileName:

com.thu.afa.esb.jbossesb.action.MySpringEnabledAction.java

77*

Copyright:

Copyright(c)2010

78*

Company:

79***********************************************************************/

80packagecom.thu.afa.esb.jbossesb.action;

81

82importorg.jboss.soa.esb.actions.AbstractSpringAction;

83importorg.jboss.soa.esb.helpers.ConfigTree;

84importorg.jboss.soa.esb.message.Body;

85importorg.jboss.soa.esb.message.Message;

86

87/**

88*

ClassName:

MySpringEnabledAction

89*

Description:

90*@authorAfa

91*@date2010-9-16

92*@version1.0

93*/

94publicclassMySpringEnabledActionextendsAbstractSpringAction

95{

96@SuppressWarnings({"deprecation"})

97publicMySpringEnabledAction(finalConfigTreeconfigTree)

98{

99this.configTree=configTree;

100}

101

102publicMessagedisplayMessage(Messagemessage)throwsException

103{

104System.out.println("Body:

"+message.getBody().get());

105returnmessage;

106}

107

108publicMessagesayHelloSpring(Messagemessage)throwsException

109{

110SaySomethingsaySomething=(SaySomething)getBeanFactory().getBean("saySomething");

111Bodybody=message.getBody();

112Stringcontents=(String)message.getBody().get();

113StringBufferbuffer=newStringBuffer();

114buffer.append(contents+"\n");

115buffer.append(saySomething.getGreeting());

116body.add(buffer.toString());

117

118returnmessage;

119}

120}

注意:

这里的action扩展的是AbstractSpringAction类,而不是AbstractActionLifecycle。

3.7Spring配置

在src目录下创建spring配置文件:

spring-context.xml,内容如下:

Xml代码

121

xmlversion="1.0"encoding="UTF-8"?

>

122

//www.springframework.org/schema/beans"

123xmlns:

xsi="http:

//www.w3.org/2001/XMLSchema-instance"

124xsi:

schemaLocation="http:

//www.springframework.org/schema/beansttp:

//www.springframework.org/schema/beans/spring-beans-2.0.xsd">

125

126class="com.thu.afa.esb.jbossesb.action.SaySomething">

127

128

129

经常跟Spring打交道的朋友看到这里应该感到很亲切了,这里的配置跟平时的没什么分别。

想必大家也能猜到,这里的配置是利用Spring的依赖注入功能,在程序中获取greeting属性的值。

3.8配置Action

Xml代码

130

131

132class="com.thu.afa.esb.jbossesb.action.MySpringEnabledAction"

133process="sayHelloSpring,displayMessage">

134

135

136

137

说明:

这里的springContextXml属性指明了spring配置文件的位置。

消息处理分发是sayHelloSpring和displayMessage,按顺序依次执行。

首先执行sayHelloSpring方法,往消息主体中添加SaySomething的greeting属性的值,而该属性值是通过上面的spring配置文件注入的。

后面的测试结果会证明这一点。

3.9配置部署文件

部署依赖文件deployment.xml内容如下:

Xml代码

138

139jboss.esb:

deployment=spring.esb

140jboss.esb.quickstart.destination:

service=Queue,name=springhelloworldRequest

141

142jboss.esb.quickstart.destination:

service=Queue,name=springhelloworldResponse

143

144jboss.esb.quickstart.destination:

service=Queue,name=springhelloworldEsb

145

146

3.10部署ESB

将整个工程导出成一个ESB文件,并保存至JBossESBServer的部署目录下,启动JBossESBServer即可。

4ESB客户端

4.1新建Java工程

这里略去操作过程以及添加所需要的Jar包,具体操作过程可参考第一个ESB实例说明。

4.2发送消息的客户端

Java代码

147/***********************************************************************

148*

ProjectName:

helloworldclient

149*

FileName:

com.thu.afa.esb.jbossesb.client.SpringHelloWorldClient.java

150*

Copyright:

Copyright(c)2010

151*

Company:

152***********************************************************************/

153packagecom.thu.afa.esb.jbossesb.client;

154

155importjava.util.Properties;

156

157importjavax.jms.ObjectMessage;

158importjavax.jms.Queue;

159importjavax.jms.QueueConnection;

160importjavax.jms.QueueConnectionFactory;

161importjavax.jms.QueueSender;

162importjavax.jms.QueueSession;

163importjavax.naming.Context;

164importjavax.naming.InitialContext;

165

166/**

167*

ClassName:

SpringHelloWorldClient

168*

Description:

169*@authorAfa

170*@date2010-9-16

171*@version1.0

172*/

173publicclassSpringHelloWorldClient

174{

175privateQueueConnectionconnection;

176privateQueueSessionsession;

177privateQueuequeue;

178

179publicvoidsetupConnection()throwsException

180{

181Propertiesproperties=newProperties();

182properties.put(Context.INITIAL_CONTEXT_FACTORY,"org.jnp.interfaces.NamingContextFactory");

183properties.put(Context.URL_PKG_PREFIXES,"org.jboss.naming:

org.jnp.interfaces");

184properties.put(Context.PROVIDER_URL,"jnp:

//127.0.0.1:

1099");

185InitialContextcontext=newInitialContext(properties);

186

187QueueConnectionFactoryfactory=(QueueConnectionFactory)context.lookup("ConnectionFactory");

188connection=factory.createQueueConnection();

189queue=(Queue)context.lookup("queue/springhelloworldRequest");

190session=connection.createQueueSession(false,QueueSession.AUTO_ACKNOWLEDGE);

191connection.start();

192

193System.out.println("ConnectionStarted");

194}

195

196publicvoidstop()throwsException

197{

198if(connection!

=null)connection.stop();

199if(session!

=null)session.close();

200if(connection!

=null)connection.close();

201}

202

203publicvoidsendAMessage(Stringtext)throwsException

204{

205QueueSendersender=session.createSender(queue);

206ObjectMessagemessage=session.createObjectMessage(text);

207sender.send(message);

208sender.close();

209}

210

211publicstaticvoidmain(String[]args)throwsException

212{

213SpringHelloWorldClientclient=newSpringHelloWorldClient();

214client.setupConnection();

215client.sendAMessage("Llu,missyou,afa-hello,spring");

216client.stop();

217}

218

219

220}

运行客户端程序即可看到以下输出结果:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1