重庆九纬次方科技有限公司 http://www.cfesb.com :
主要从事免费云ESB平台运营、ESB/MDM技术咨询服务、ESB/MDM定制开发服务、API服务定制开发、软件定制开发服务、工业设备数采ESB服务的专业互联网企业。
ESB免费用,反正也不要钱,为什么不试试呢:http://www.cfesb.com/product-show.html
根据前章已完成的REST服务接入,在此基础上修改为使用标准SOAP请求模式
前题
1.2.OSB接入REST服务示例 -OSB v12.2.1.3.0
平台参数
序号 | 参数 | 值 |
---|---|---|
1 | 服务系统(名称) | 01002(OA) |
2 | 请求系统(名称) | 01003(EAR) |
3 | 服务编号 | 01002000000001 |
4 | 请求地址 | /01002000000001 |
5 | 请求名称 | ps_ear_getJobStatus |
6 | 服务名称 | demo_bs_oa_getJobStatus(暂不改) |
7 | 管道名称 | pl_ear_getJobStatus |
实现步骤
1、复制请求使用的wsdl
2、创建请求Proxy
注意:这里把“Generate Pipeline”选项去掉了,我们不需要自动建管道,使用手动来建。
3、创建管道
选择“From Template”从标准模板生成管道
去掉"Expose as a Proxy Service"自动生成代理的选项,后面我们进行手动设置关连
4、设置代理与管道关联
可以看到左侧ps在报错,这是由于没有设置管道的原因,这里我们还没有保存,设置了管道保存了就不会再报错了。
5、修改管道
注:这是管道测试时所看到的变量列表,所以在这进行说明,具体管道设置对于开发人员来说可以反向进行开发。
6、测试
7、优化返回参数
从测试中可以看到返回的数据为{"Status":"Input param is one"},是json格式,而实际上我们请求的是soap请求,返回的时候也应该是xml才对,不然在程序中反序列为class时会不适用,所以这里我们需要修改反回参数为标准格式,并进行转换。
8、测试
管道测试
soapui测试
从测试结果中可以看出,请求是soap形式,返回也是soap形式,正是我们想得到的效果,至此“使用标准SOAP格式请求REST服务”已完成接入
附:
1、如果Status状态返回的是单字符形式,我们还可以使用判断进行控制:
if($formatjson2xml/ns0:state/text()='1')
then
'S'
else
'F'