OSB使用企业标准SOAP请求REST服务
根据前章已完成的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'