如何从BPEL流程中使用真正的Web服务?

时间:2012-11-30 10:38:29

标签: wsdl bpel

我现在已经对BPEL进行了大约两周的研究,但仍然没有得到它。

我已在ODE中部署了HelloWorld示例,并且还设法部署this other one

我的目的是做第二个例子,但我自己的真实WS部署和工作。

我现在正处于一个没有错误的流程并且在ODE中正确部署,具有以下结构:

enter image description here

我从导入Multiply.wsdl的服务定义启动了项目。 Designer已将导入标记自动编写到PartnerLinkTypes旁边的MuktiplyProcessArtifacts.wsdl中,因此我假设所有命名空间等都可以。

为了完成所有这些工作,有一些我误解的概念:

  1. 在我原来的Multiply.wsdl中
  2.   

    皂:地址   位置=" HTTP://本地主机:8080 / WS-乘法/乘"

    但是ODE告诉我我的soap:地址的格式必须是host.port / ode / processes ..

    这对我来说听起来不合理,因为我的WS可以在我的ODE_HOME之外的任何地方实现。

    1. 我之前提到过的第二个例子解释了Designer如何创建一个" Caller.wsdl",它实际上具有我想要的功能,即实现一个"包装器& #34; WSDL,为BPEL流程提供入口和出口点。问题是Designer不生成该接口。我应该自己制作吗?我是否必须创建它?

    2. 如果确实需要第3个wsdl,那么如果我想测试整个过程,是否需要调用它?

3 个答案:

答案 0 :(得分:4)

看起来您的合作伙伴WSDL与partnerlink的myrole相关联。 Partnerlinks和partnerlink类型是BPEL中的一个概念,用于定义双接口,如果合作伙伴A想要作为买方与BPEL流程进行通信,则需要提供该流程可用于的一组特定功能。进一步的沟通(即向买方发送货物确认)。因此,partnerlink维护两个角色,myRole是进程本身提供的portType(aka接口),partnerRole指的是进程期望由伙伴实现的portType。 MyRoles当然必须由BPEL流程实现,因此需要具有BPEL引擎公开的端点。 PartnerRoles可以绑定到任意端点。这发生在部署描述符中,即ODE中的deploy.xml。

我想您可以通过将合作伙伴WSDL分配给合作伙伴角色来修复您的流程。

答案 1 :(得分:1)

答案 2 :(得分:0)

它必须在tomcat服务器上部署Ode.war,tomcat创建一个类似于图片的路径,你需要用完整的路径配置你的endpoit / ode / processes

  

C:\ Apache的Tomcat的7.0.55 \ web应用\ ODE \ WEB-INF \过程\ BPEL_WS \