平时在使用OSB时,总要使用到一些普通的测试接口如webService和Rest类接口,一般的解决思路是在本地跑一个工程,工程里有测试类接口,在osb中测试时只能在本地路,如果换到服务器环境就不能测试。
当然可以在服务器环境中去部署这个测试工程,但现实的情况是根据企业管理规定,开通某些服务、端口、应用需要流程审批,一般这样的测试请求是不会被允许的。
所在就想在OSB平台中自建一个空服务请求,用于平时的测试。
利用osb平台定义一个返回固定参数的REST服务
不需要BS服务与路由,只需要收到请求参数后返回固定值
通过改造一个已实现REST请求与服务的osb连接进行改造
序号 | 原始文件 | 目标路径 | 目标文件 |
---|---|---|---|
1 | demo_ps_ear_getJobStatus | COMMON/BS目录 | ps_rest_test |
2 | demo_pl_ear_getJobStatus | COMMON/PL目录 | pl_rest_test |
回到工作台刷新,即可看到相应的配置已修改,并不再报错。
删除路由Rout与Routing组件,同时拖入Pipeline pair组件,加入if 判断 输入参数是否为1
如果输入参数为1,把返回值写入变量retVal中
如果输入参数不为1,把返回值写入变量retVal中
最后在返回管道中使用变量retVal替换掉返回body
osb平台管道中测试
soapUI中测试
至此OSB平台中创建空REST服务已完成,以后工程部署在哪台都可以测试
大家这里可能会注意到,使用管道测试和soapui测试时返回时的数据为text格式,这样的话,以rest json请求,结果 返回的为 text格式,会给后续服务的使用造成麻烦。如下图
修复这个问题,这是由于返回数据是的消息头没有进行设置,osb即自动设置为了“text/plan”
在管道中加入头设置组件:
再次测试:
测试上一章接口
注意:两个红框对比,右边为SOAPUI测试时返回,左边为我们管道测试结果,返回数据已变为