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、文件目录

image-20210520155210445

3、修改ps_soap_test.proxy

​ 可以看到ps_rest_test.proxy报错,点开后修改所应名称和pipeline,都无法修改,这需要进到目录中修改源文件。

image-20210520155412563

回到工作台刷新,即可看到相应的配置已修改,并不再报错。

image-20210520155524177

4、修改管道

删除路由Rout与Routing组件,同时拖入Pipeline pair组件,加入if 判断 输入参数是否为1

image-20210520165652965

如果输入参数为1,把返回值写入变量retVal中

image-20210520165733350

如果输入参数不为1,把返回值写入变量retVal中

image-20210520165804059

最后在返回管道中使用变量retVal替换掉返回body

image-20210520152833398

5、测试

osb平台管道中测试

image-20210520165905697

soapUI中测试

image-20210521093355912

至此OSB平台中创建空REST服务已完成,以后工程部署在哪台都可以测试

6、一个小问题

​ 大家这里可能会注意到,使用管道测试和soapui测试时返回时的数据为text格式,这样的话,以rest json请求,结果 返回的为 text格式,会给后续服务的使用造成麻烦。如下图

image-20210521093631196

修复这个问题,这是由于返回数据是的消息头没有进行设置,osb即自动设置为了“text/plan”

在管道中加入头设置组件:

image-20210521093856033

再次测试:

image-20210521094054950

7、修改前章

修改demo_bs_oa_getJobStatus中的引用地址为:http://127.0.0.1:7101/rest/test

image-20210521094229084

修改对应的wsdl中的地址

image-20210520154121706

测试上一章接口

image-20210521094646293

注意:两个红框对比,右边为SOAPUI测试时返回,左边为我们管道测试结果,返回数据已变为http://127.0.0.1:7101/rest/test的返回数据一样了,说明切换成功。

results matching ""

    No results matching ""