Oracle SOA套件:用BPEL创建复合服务(二)

2010-3-8   
   | |

导读:本文介绍了在Oracle SOA套件中如何用BPEL创建复合服务,本文以实时股票报价服务为进行讲解。

关键词:BPEL 调用WEB服务

 
正在加载数据... 【TechTarget中国原创】在上一篇文章《Oracle SOA套件:用BPEL创建复合服务(一)》中,我们介绍了在Oracle SOA套件中用BPEL创建复合服务的一些准备工作,下一步是调用外部WEB服务;股票报价服务将使用Xignite的报价WEB服务,这个服务延时交付来自美国的股票交易所得均价……

【TechTarget中国原创】调用外部WEB服务

  下一步是调用外部WEB服务;股票报价服务将使用Xignite的报价WEB服务,这个服务延时交付来自美国的股票交易所得均价。(纽约证交所、纳斯达克、美国证交所、纳斯达克场外交易公告板和粉单市场)

  在BPEL中调用WEB服务,首先需要创建PartnerLink。从组建板选择“服务”拖拽下来,并拽“PartnerLink”到“服务”泳道进入到BPEL流程中。下图为弹出的窗口:

  图4

  图4

  首先输入PartnerLink的名称,例如XigniteQuote。然后为PartnerLink制定WSDL文件。JDeveloper提供以下的方式:

  浏览WSDL文件:我们可以为WSDL文件定义服务浏览系统文件。

  服务浏览器:我们可以浏览在复合应用(如其它BPEL流程或者ESB服务)中已经定义好的服务。

  定义继承服务:我们可以在BPEL环境中直接定义继承服务。

  输入URL:为WSDL文件直接输入URL到匹配域。

  为了我们的目的,我们为Xignite的Quote有一个WSDL的本地复制,称为XigniteQuote,wsdl。单击“浏览WSDL文件”图标(先前截图中的高亮显示),然后浏览选择这个文件(如果提示创建文件本地复制,选择“是”。)

  JDeveloper将从语法上分析WSDL,假设它是成功的,将弹出一个窗口说在最近的WSDL中没有PartnerLink类型定义,并询问你是否希望为该文件创建PartnerLink:单击“是”。JDeveloper就会为WSDL中的每个端口类型创建“PartnerLinkType”。

  本例子中我们有多样的PartnerLink类型,需要指明流程中使用哪一个。单击拖拽“PartnerLinkType”并选择合适的。本例中我们选择“XigniteQuoteSoap_PL”,如下图:

图5

  图5

    要指明PartnerRole和MyRole。当调用同步服务的时候。将有一个WSDL单独的对象定义,代表服务提供者。因此为PartnerRole指明这个并遗留MyRole作为未指明。

  调用WEB服务

  一旦我们为WEB服务定义了PartnerLink,下一步就是调用它。作为其同步服务,我们需要使用<invoke>活动来调用它。

  在组件板上,确保“流程活动”的子菜单是挑选出来的,然后从中拖出“Invoke”活动到你的BPEL流程。

  接下来,将鼠标箭头放置在下一个“Invoke”活动;单击并按住鼠标在PartnerLink上拖拽箭头,然后释放。下图所示:

图6

图6

  随后弹出“Edit Invoke”活动窗口,如下图所示:

图7

图7

  我们需要指明许多值进行配置调用活动,命名:

  •   名称:我们想指派给调用活动的名称,可以是任何值。为“GETQUOTE”指派一个有意义的值。
  •   PartnerLink:我们想要调用服务的PartnerLink的值;被设定在使用XigniteQuote中,我们已经将这个活动链接到PartnerLink。
  •   运行:一旦我们制定PartnerLink,我们需要指明我么希望调用哪一个运行。
  •   输入变量:我们必须指定变量,这个变量包含将要通过WEB服务调用的数据。消息类型的可变因素非常重要。这是运行中预期的消息类型。这个最简单的方式确保得到JDeveloper创建正确的变量输入域。将提出“创建变量”的窗口,如下图所示。看可以看到JDeveloper为变量创建了一个默认的名称,你可以用任何有意义的内容覆盖。
  •   输出变量:最后,我们必须指明在WEB服务之后的变量返回值。通过输入变量,应该是消息类型,响应为选择运行在WSDL文件中定义的输出消息。用最简单的方式确保JDeveloper创建你需要的变量。

图8

图8

   如上所述,为所有这些定义好值,单击“确定”。

  在下一篇文章中,我们将继续为您介绍,如何未变量赋值以及调用WEB服务汇率。

 
查看全文
 
 
 
 
 

Oracle Web服务

 
现在事件处理的实际情况是:应用需要从范围很广的应用那里收集信息,这些应用,天生缺乏业务事件这种概念意识。
 
甲骨文最近发布的Oracle Enterprise Pack for Eclipse (OEPE) 11g (11.1.1.6)为分布式缓存开发提供了新的工具。
 
甲骨文于上周四对谷歌提起诉讼,声称谷歌的Android移动操作系统侵犯了甲骨文对Java软件的专利权和版权。谷歌广泛使用开放JDK开发包,使得Java开发者可以快速创建Android应用。
 
“甲骨文公司正忙于更新其融合中间件11g的产品线,”一个最终用户说:“他们最大的特点是融合,而最重要的事情是缺少更多的融合。”
 
甲骨文上周宣布发布Tuxedo 11g,这是一个和之前收购的BEA Systems共同运转的交易处理平台。BEA Systems希望为非Java语言变成以任务为中心的应用服务器……
 

登录TechTarget中国

关闭
本服务仅向TechTarget中国的会员开放,请登录或立即免费注册
电子邮件地址:
请输入您的电子邮件地址
密码:
下次自动登录