然后我们进入代理服务在该服务上执行所有操作

创建业务服务后将首先为您提供“常规”选项卡, 右键单击“ transformation”文件夹然后选择“新建”-“ XQuery转换”, 现在我们可以测试功能了。

就是这样, 示例项目可以在下载, 配置业务服务 右键单击“业务”文件夹然后选择“新建”-“业务服务”, OSB需要了解的几个主要组件如下 代理服务 顾名思义代理服务是托管于外部方的服务充当内部服务的基础, 输入一个有效的名称, 这就是我们配置业务服务所需要做的, 对我来说第一个优点是它提供了惊人的工具支持, 它可以是WebServiceJMS队列/主题REST服务FTP服务等等, 在“常规”选项卡中选择“ WSDL Web服务”然后单击浏览, 因此我们将重点关注本文的场景如下 我们有一项内部服务如果用户输入了MSISDN或SIM卡号它就会返回订户信息并且根据输入将提取并返回数据, 现在在代理服务中您需要选择我们创建的代理WSDL文件该文件将向外部客户端公开, 单击“表达”链接, 使用的响应转换文件如下 (:: pragma bea:global-element-parameter parameter$installedBaseSubscriberClassificationQueryResponse1 elementns1:InstalledBaseSubscriberClassificationQueryResponse location../wsdl/subscriber_classfication.wsdl ::)(:: pragma bea:global-element-return elementns2:FetchSubscriberResponse location../wsdl/SubscriberProxyService.wsdl ::)declare namespace ns2 ;declare namespace ns1 ;declare namespace ns0 ;declare namespace xf %20training%201/transformation/subscriberresponse/;declare function xf:subscriberresponse($installedBaseSubscriberClassificationQueryResponse1 as element(ns1:InstalledBaseSubscriberClassificationQueryResponse))as element(ns2:FetchSubscriberResponse) {ns2:FetchSubscriberResponseTradeCustomerCode{ data($installedBaseSubscriberClassificationQueryResponse1/ns0:InstalledBaseSubscriberClassificationQuery/ns0:Response/ns0:Subscriber/ServiceProviderCode) }/TradeCustomerCodePackageCode{ data($installedBaseSubscriberClassificationQueryResponse1/ns0:InstalledBaseSubscriberClassificationQuery/ns0:Response/ns0:Subscriber/ns0:Package/ProductCode) }/PackageCodePaymentOption{ data($installedBaseSubscriberClassificationQueryResponse1/ns0:InstalledBaseSubscriberClassificationQuery/ns0:Response/ns0:Subscriber/PaymentOption) }/PaymentOption/ns2:FetchSubscriberResponse};declare variable $installedBaseSubscriberClassificationQueryResponse1 as element(ns1:InstalledBaseSubscriberClassificationQueryResponse) external;xf:subscriberresponse($installedBaseSubscriberClassificationQueryResponse1) 这是一个简单的转换其中我们根据需要将响应元素映射到代理响应元素。

在“ In Variable”中输入值“ body”, 商业服务将包含调用实际服务的功能, 最终结果如下所示 现在让我们将“替换”动作拖放到“响应动作”组件中, 商业服务 就OSB而言业务服务代表内部应用程序服务, 然后选择“浏览”选择WSDL文件您将看到两个选项, 然后转到“传输”选项卡并将URI更改为http// localhost8088 / mockInstalledBaseSubscriberClassificationQueryWSServiceSoapBinding, 输入前缀“ ins”和URI作为“ ”, 新的Oracle SOA Suite 12c已进行了相当多的更改我们将不在本文中介绍, 在我们为“替换”操作提供“属性”选项卡上的信息之前我们需要创建XQuery转换文件该文件将代理服务请求映射到业务服务请求然后将业务服务响应映射回代理服务响应, 翻译自: https://www.javacodegeeks.com/2016/08/introduction-oracle-service-bus.html , 必须通过使用代理服务以更有意义的方式向外部用户公开此服务, 结果如下 然后将“替换”动作拖到“请求动作”组件中, 这是我通过运行示例得到的结果 如果在“调用跟踪”部分的同一屏幕上进一步浏览则可以看到发生了什么的跟踪, 对于请求和响应转换文件都应该这样做, 可以从下载该示例的SOAPUI项目, 然后我们进入代理服务在该服务上执行所有操作, 现在我们回到代理服务单击“替换”操作转到“属性”选项卡,。

另外如果您有任何需要改进的地方也请留下您的反馈意见我们将不胜感激, 现在您将收到一条错误消息指出无法识别“ ins”名称空间。

我们正在为电信提供商设计一个新系统在该系统中我们研究了用作企业服务总线的Oracle服务总线OSB, 在右侧的“可变结构”组件中展开“ body”元素然后选择request元素并将其拖放到“ Binding”文本框中如下所示 然后选择“确定”这将带您返回“属性”选项卡, 通过使用代理服务您可以更好地控制内部服务中的更改因为如果内部服务发生更改则代理服务可以执行所需的转换, 为此我们执行以下操作 选择“ WSDL Web服务”然后单击浏览器, 这是因为我们将使用SOAPUI模拟服务功能进行测试并且URI代表WSDL表示的服务的SOAPUI模拟服务端点, 配置代理服务 右键单击创建的“ proxy”文件夹选择“新建”-“代理服务”并提供有效名称, 首先我们创建业务服务它将作为我们内部服务的基础, 如果您对此有任何疑问请随时发表评论我们将尽快答复。

选择“替换节点内容”单选按钮, 现在让我们登录到服务总线控制台转到代理服务并启动测试控制台, 转到“消息流”选项卡, 转到“ XQuery资源”选项卡单击“浏览”然后选择请求转换文件, 在该选项卡中首先从右侧的“设计面板”中拖动“路线”元素, 与之前相同选择响应转换“ $ body / insInstalledBaseSubscriberClassificationQueryResponse”, 使用的请求转换文件如下 (:: pragma bea:global-element-parameter parameter$fetchSubscriber1 elementns2:FetchSubscriber location../wsdl/SubscriberProxyService.wsdl ::)(:: pragma bea:local-element-return typens1:InstalledBaseSubscriberClassificationQuery/ns0:InstalledBaseSubscriberClassificationQuery location../wsdl/subscriber_classfication.wsdl ::)declare namespace ns2 ;declare namespace ns1 ;declare namespace ns0 ;declare namespace xf %20training%201/transformation/subscriberrequest/;declare function xf:subscriberrequest($fetchSubscriber1 as element(ns2:FetchSubscriber))as element() {ns1:InstalledBaseSubscriberClassificationQueryns0:InstalledBaseSubscriberClassificationQueryns0:Request{if (data($fetchSubscriber1/EquipmentType) MSISDN) thenns0:MSISDN { (data($fetchSubscriber1/EquipmentValue))}/ns0:MSISDNelsens0:SIMCard { data($fetchSubscriber1/EquipmentValue)}/ns0:SIMCard}/ns0:Request/ns0:InstalledBaseSubscriberClassificationQuery/ns1:InstalledBaseSubscriberClassificationQuery};declare variable $fetchSubscriber1 as element(ns2:FetchSubscriber) external;xf:subscriberrequest($fetchSubscriber1) 如您所见在这里我们检查设备类型是否等于“ MSISDN”然后在业务服务上设置适当的元素, OSB完成的请求和响应转换如下所示 至此我们对Oracle Service Bus的介绍结束了, 通过将其捆绑为Oracle SOA套件Oracle已将其所有企业集成软件堆栈集成为一个有凝聚力的整体, 在执行此操作之前请记住首先启动在SOAP UI上创建的模拟服务, 在您的OSB项目中创建以下四个文件夹 代理 商业 转型 wsdl 然后我们需要将内部服务WSDL和为此示例创建的代理服务WSDL复制到“ wsdl”文件夹中, 在本文中重点将放在作为Oracle SOA Suite 11g一部分的Oracle OSB 11g上, 单击“路由”元素然后在底部窗格中进入“属性”选项卡您将在其中提供此代理服务将访问的业务服务和操作名称, 选择一个以“端口结尾的”。

然后将“路由”元素拖到“路由”元素中, 为了解决该问题请在相同的“属性”选项卡中选择“名称空间”选项卡然后单击“添加”, 但是我喜欢新的Oracle SOA Suite 12c的一个功能是开发人员可以使用JDeveloper在一个IDE集成开发环境中开发BPEL业务流程执行语言和OSB代码。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://acg.inmoke.com/zixun/Jk/51776.html