




已阅读5页,还剩9页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
JBoss ESB学习笔记12第十一个ESB应用Spring Hello World续上篇介绍了第十个ESB应用,本文介绍第十一个ESB应用Spring Hello World。 1 概述本实例主要演示了基于spring的action调用,这里需要引用spring相关的jar包,这些jar包都可以在所下载的jboss esb中找到。 2 新建ESB工程新建ESB工程,在jbossesb-server-4.7中找到以下两个jar包:jbossesb-spring.jar和spring-2.5.6.SEC01.jar,并将这两个jar包复制到esbcontent/lib目录下,同时添加到项目的classpath。至于这两个jar包的具体位置,不记得了,可以直接搜索找到。 3 ESB配置3.1 创建消息队列Xml代码 1 2 3 4 5 jboss.messaging:service=ServerPeer 6 7 jboss.messaging:service=PostOffice 8 9 10 11 jboss.messaging:service=ServerPeer 12 13 jboss.messaging:service=PostOffice 14 15 16 17 jboss.messaging:service=ServerPeer 18 19 jboss.messaging:service=PostOffice 20 21 3.2 定义Provider这里将定义一个JMS Provider,并定义2个消息通道,内容如下:Xml代码 22 23 24 26 27 28 30 31 3.3 定义ServiceXml代码 32 34 35 36 37 38 3.4 定义ListenerXml代码 39 40 42 43 3.5 定义Java BeanJava代码 44 /* 45 * Project Name: springhelloworld 46 * File Name: com.thu.afa.esb.jbossesb.action.SaySomething.java 47 * Copyright: Copyright (c) 2010 48 * Company: 49 */ 50 package com.thu.afa.esb.jbossesb.action; 51 52 /* 53 * Class Name: SaySomething 54 * Description: 55 * author Afa 56 * date 2010-9-16 57 * version 1.0 58 */ 59 public class SaySomething 60 61 private String greeting; 62 63 public String getGreeting() 64 65 return greeting; 66 67 68 public void setGreeting(String greeting) 69 70 this.greeting = greeting; 71 72 73 说明:这是一个普通的JavaBean,为后面验证spring在ESB中的IOC功能而引入。 3.6 定义ActionJava代码 74 /* 75 * Project Name: springhelloworld 76 * File Name: com.thu.afa.esb.jbossesb.action.MySpringEnabledAction.java 77 * Copyright: Copyright (c) 2010 78 * Company: 79 */ 80 package com.thu.afa.esb.jbossesb.action; 81 82 import org.jboss.soa.esb.actions.AbstractSpringAction; 83 import org.jboss.soa.esb.helpers.ConfigTree; 84 import org.jboss.soa.esb.message.Body; 85 import org.jboss.soa.esb.message.Message; 86 87 /* 88 * Class Name: MySpringEnabledAction 89 * Description: 90 * author Afa 91 * date 2010-9-16 92 * version 1.0 93 */ 94 public class MySpringEnabledAction extends AbstractSpringAction 95 96 SuppressWarnings(deprecation ) 97 public MySpringEnabledAction(final ConfigTree configTree) 98 99 this.configTree = configTree; 100 101 102 public Message displayMessage(Message message) throws Exception 103 104 System.out.println(Body: + message.getBody().get(); 105 return message; 106 107 108 public Message sayHelloSpring(Message message) throws Exception 109 110 SaySomething saySomething = (SaySomething) getBeanFactory().getBean(saySomething); 111 Body body = message.getBody(); 112 String contents = (String) message.getBody().get(); 113 StringBuffer buffer = new StringBuffer(); 114 buffer.append(contents + n); 115 buffer.append(saySomething.getGreeting(); 116 body.add(buffer.toString(); 117 118 return message; 119 120 注意:这里的action 扩展的是AbstractSpringAction类,而不是AbstractActionLifecycle。 3.7 Spring配置在src目录下创建spring配置文件:spring-context.xml,内容如下:Xml代码 121 122 125 127 128 129 经常跟Spring打交道的朋友看到这里应该感到很亲切了,这里的配置跟平时的没什么分别。想必大家也能猜到,这里的配置是利用Spring的依赖注入功能,在程序中获取greeting属性的值。 3.8 配置ActionXml代码 130 131 134 135 136 137 说明:这里的springContextXml属性指明了spring配置文件的位置。消息处理分发是sayHelloSpring和displayMessage,按顺序依次执行。首先执行sayHelloSpring方法,往消息主体中添加SaySomething的greeting属性的值,而该属性值是通过上面的spring配置文件注入的。后面的测试结果会证明这一点。 3.9 配置部署文件部署依赖文件deployment.xml内容如下:Xml代码 138 139 jboss.esb:deployment=spring.esb 140 jboss.esb.quickstart.destination:service=Queue,name=springhelloworldRequest 141 142 jboss.esb.quickstart.destination:service=Queue,name=springhelloworldResponse 143 144 jboss.esb.quickstart.destination:service=Queue,name=springhelloworldEsb 145 146 3.10 部署ESB将整个工程导出成一个ESB文件,并保存至JBoss ESB Server的部署目录下,启动JBoss ESB Server即可。 4 ESB客户端4.1 新建Java工程这里略去操作过程以及添加所需要的Jar包,具体操作过程可参考第一个ESB实例说明。 4.2 发送消息的客户端Java代码 147 /* 148 * Project Name: helloworldclient 149 * File Name: com.thu.afa.esb.jbossesb.client.SpringHelloWorldClient.java 150 * Copyright: Copyright (c) 2010 151 * Company: 152 */ 153 package com.thu.afa.esb.jbossesb.client; 154 155 import java.util.Properties; 156 157 import javax.jms.ObjectMessage; 158 import javax.jms.Queue; 159 import javax.jms.QueueConnection; 160 import javax.jms.QueueConnectionFactory; 161 import javax.jms.QueueSender; 162 import javax.jms.QueueSession; 163 import javax.naming.Context; 164 import javax.naming.InitialContext; 165 166 /* 167 * Class Name: SpringHelloWorldClient 168 * Description: 169 * author Afa 170 * date 2010-9-16 171 * version 1.0 172 */ 173 public class SpringHelloWorldClient 174 175 private QueueConnection connection; 176 private QueueSession session; 177 private Queue queue; 178 179 public void setupConnection() throws Exception 180 181 Properties properties = new Properties(); 182 properties.put(Context.INITIAL_CONTEXT_FACTORY, erfaces.NamingContextFactory); 183 properties.put(Context.URL_PKG_PREFIXES, org.jboss.naming:erfaces); 184 properties.put(Context.PROVIDER_URL, jnp:/:1099); 185 InitialContext context = new InitialContext(properties); 186 187 QueueConnectionFactory factory = (QueueConnectionFactory) context.lookup(ConnectionFactory); 188 connection = factory.createQueueConnection(); 189 queue = (Queue) context.lookup(queue/springhelloworldRequest); 190 session = connection.createQueueSession(false, QueueSession.AUTO_ACKNOWLEDGE); 191 connection.start(); 192 193 System.out.println(Connection Started); 194 195 196 public void stop() throws Exception 197 198 if(connection != null) connection.stop(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年上海大学公开招聘岗位(第二批)考前自测高频考点模拟试题及答案详解(全优)
- 中国联通资阳市2025秋招笔试行测题库及答案综合管理类
- 中国联通昆明市2025秋招行业常识50题速记
- 2025年嘉兴海宁市中心医院公开招聘高层次急需卫技人员4人考前自测高频考点模拟试题及答案详解(易错题)
- 2025年上海市奉贤区医疗急救中心公开招聘编外辅助工作人员考前自测高频考点模拟试题附答案详解(模拟题)
- 2025年甘肃医学院招聘事业编制专业技术人员13人(第一批)考前自测高频考点模拟试题及答案详解(全优)
- 土地种植合作协议书4篇
- 婚礼现场讲话稿15篇
- 2025年台州市黄岩区卫健系统公开招聘卫技人员26人考前自测高频考点模拟试题附答案详解(黄金题型)
- 2025年老年长期照护服务模式下的社区养老护理服务标准化研究报告
- 2025内蒙古鄂尔多斯市国源矿业开发有限公司招聘75人备考考试题库附答案解析
- 2025年专升本政治试题真题及答案
- 金属热处理工测试考核试卷及答案
- 食品安全宣传培训会课件
- GB/T 21415-2025体外诊断医疗器械建立校准品、正确度控制物质和人体样品赋值的计量溯源性要求
- 患者走失应急演练脚本(2篇)
- 全网营销培训课件下载
- 农村财务报账员培训课件
- (2025秋新版)外研版八年级英语上册全册教案
- GB/T 45870.1-2025弹簧测量和试验参数第1部分:冷成形圆柱螺旋压缩弹簧
- 数据备份课件
评论
0/150
提交评论