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