IBM Message Broker笔记系列(七)
来源:互联网 发布:深圳进出口数据 编辑:程序博客网 时间:2024/04/30 22:54
这篇是针对WebService的一些使用技巧
入门
MB对WebService的支持其实不是它的强项,它的长处在于MQ,MB就是基于MQ的,所谓“消息代理”,感觉就是在消息中间件基础上增加了“代理”功能。MB的前身是MQ Integrator,所以从字面意思上来看,也是“message -> integrator -> broker”,越来越复杂的功能。据说,Websphere ESB对于java和webservice的支持更加完善,不过我也没有用过。
扯了那么多,回到主题。在MB V6.0中,对WebService的支持还是比较弱的,以单纯的http节点,加上程序员在compute节点中手工操作消息树,包括对SOAP包进行封包(envelop)和解包(extract)都要自力更生,难度比较大,且不够直观简练,给人感觉是MB对webservice支持不够,不得已而为之。到了V6.1,情况终于有了较大的改观,MB提供专门的webservice节点了。
所以,如果你还在看《精通WMB》,那么webservice那一章可以先放下了,去WMBT的“样本库”,看看webservice的教程,会发现不仅仅有专门的SOAP节点,还对IBM的WSRR也有专门的支持,甚至还提供异步的SOAP节点。因此在MB中使用webservice,第一步推荐先去学这些样例。特别留意使用http和soap节点时,前后的compute节点的ESQL代码的差异,体会SOAP节点的方便。
技巧
看完SOAP节点的样例之后,会发现里面的那个子流,其实也挺复杂的,好像不比http节点简单
http节点
SOAP节点
其实,Envelope和Extract节点是MB6.1才有的,没有他们,http节点构造webservcie会变得很啰嗦;另外,以上的流程图,是可以通过向导的方式生成的,这一点非常方便。
首先在消息集项目中,“从WSDL文件”新建一个消息定义;然后将这个WSDL文件拖到某个消息流的编辑界面中,自动弹出一个向导,简单地一步步走,就能生成以上的消息流。
动态设置webservice地址
在以上生成的消息流中,HTTP节点和SOAP节点都有一个属性,用于指定webservice的请求地址,但这是写死在节点中的。如果要在运行过程中动态设置呢?比如根据消息内容,选择合适的URL地址进行webservice调用。
其实很简单,只需在SOAP或HTTP节点之前的某个compute节点中,在LocalEnvironment中设置一个相应的值即可
- HTTP节点:
SET OutputLocalEnvironment.Destination.HTTP.RequestURL = ‘webservice地址’
- SOAP节点:
set OutputLocalEnvironment.Destination.SOAP.Request.Transport.HTTP.WebServiceURL = ‘webservice地址’
注意,切记把compute节点的“计算方式”设置为“消息和LocalEnvironment”,总之至少要包括LocalEnvironment,否则设置了等于没设置,compute节点不会将LocalEnvironment往下传
- IBM Message Broker笔记系列(七)
- IBM Message Broker笔记系列(二)
- IBM Message Broker笔记系列(三)
- IBM Message Broker笔记系列(四)
- IBM Message Broker笔记系列(五)
- IBM Message Broker笔记系列(六)
- IBM Message Broker笔记系列(八)
- IBM Message Broker笔记系列(九)
- IBM Message Broker笔记系列
- IBM websphere Message Broker 学习笔记 - 命令
- IBM Websphere Message Broker(MB) 教程系列-(1) 在Fedora 17上安装IBM Websphere Message Broker (MB)
- IBM Websphere Message Broker(MB) 教程系列-(2) 创建Broker
- IBM Websphere Message Broker(MB) 教程系列-(3) MQ基础
- IBM WebSphere Message Broker 学习资源
- IBM Message Broker(IBM ESB产品)启停代理、控制管理器、队列的顺序
- IBM Message Broker(IBM ESB产品)查询MQ(Message Queue)中已经创建了哪些队列
- WebSphere Message broker 学习笔记
- IBM WebSphere Message Broker Training day 1 tips
- SSO概念
- 计算机像视觉方面的国际会议和期刊
- 请问JAVA要学会得要多长时间
- 应用整合中SSO的技术实现
- 关于Dreamweaver制作UTF-8编码网页的测试
- IBM Message Broker笔记系列(七)
- 编程技巧或控件网站最新链接地址备忘录【深海备忘网址】
- WSRP概念
- Vbs脚本编程简明教程
- 转贴:Oracle中的 UPDATE FROM 解决方法收藏
- 通知栏按钮锁[E开源]
- 模块功能点测试方法模板
- “无线流动全球眼”现身上海
- The DBA Daily Checklist