1

BPEL流程已经部署到本地BPS服务器,BPEL代码如下:

<bpel:process xmlns:bpel="http://docs.oasis-open.org/wsbpel/2.0/process/executable" xmlns:ns2="http://sample.wso2.org" xmlns:aop="http://wso2.org/sample/bankingArtifacts" xmlns:ns1="http://hcc.wso2" xmlns:ns="http://wso2.org/banking" xmlns:tns="http://wso2.org/sample/banking" xmlns:ns0="http://ws.wso2.org/dataservice" xmlns:xsd="http://sample.wso2.org/xsd" xmlns:hcc="http://hcc.wso2/xsd" name="AccountOpeningProcess" targetNamespace="http://wso2.org/sample/banking" suppressJoinFailure="yes">
   <!-- ================================================================= -->
      <!-- PARTNERLINKS                                                      -->
         <!-- List of services participating in this BPEL process               -->
            <!-- ================================================================= -->
               <bpel:import namespace="http://sample.wso2.org" location="CardService.wsdl" importType="http://schemas.xmlsoap.org/wsdl/"/>
               <bpel:import namespace="http://hcc.wso2" location="AccountDetailService.wsdl" importType="http://schemas.xmlsoap.org/wsdl/"/>
               <bpel:import namespace="http://ws.wso2.org/dataservice" location="CustomerDS.wsdl" importType="http://schemas.xmlsoap.org/wsdl/"/>
               <bpel:import namespace="http://wso2.org/sample/bankingArtifacts" location="AccountOpeningProcessArtifacts.wsdl" importType="http://schemas.xmlsoap.org/wsdl/"/>
               <bpel:import namespace="http://wso2.org/banking" location="AccountOpeningProcessService.wsdl" importType="http://schemas.xmlsoap.org/wsdl/"/>
               <bpel:partnerLinks>
                  <bpel:partnerLink name="AOPPL" partnerLinkType="aop:AOPPLT" myRole="openAccountRole"/>
                  <bpel:partnerLink name="CDSPL" partnerLinkType="aop:CDSPLT" partnerRole="customerDSRole"/>
                  <bpel:partnerLink name="ADSPL" partnerLinkType="aop:ADSPLT" partnerRole="accountRole"/>
                  <bpel:partnerLink name="CSPL" partnerLinkType="aop:CSPLT" partnerRole="cardRole"/>
               </bpel:partnerLinks>
               <!-- ================================================================= -->
                  <!-- VARIABLES                                                         -->
                     <!-- List of messages and XML documents used within this BPEL process  -->
                        <!-- ================================================================= -->
                           <bpel:variables>
                              <bpel:variable name="AOPPLRequest" messageType="ns:CreateAccountRequest"/>
                              <bpel:variable name="AOPPLResponse" messageType="ns:CreateAccountResponse"/>
                              <bpel:variable name="CDSPLResponse" messageType="ns0:op1Response"/>
                              <bpel:variable name="CDSPLRequest" messageType="ns0:op1Request"/>
                              <bpel:variable name="ADSPLResponse" messageType="ns1:createAccountResponse"/>
                              <bpel:variable name="ADSPLRequest" messageType="ns1:createAccountRequest"/>
                              <bpel:variable name="CSPLResponse" messageType="ns2:issueCardResponse"/>
                              <bpel:variable name="CSPLRequest" messageType="ns2:issueCardRequest"/>
                           </bpel:variables>
                           <!-- ================================================================= -->
                              <!-- ORCHESTRATION LOGIC                                               -->
                                 <!-- Set of activities coordinating the flow of messages across the    -->
                                    <!-- services integrated within this business process                  -->
                                       <!-- ================================================================= -->
                                          <bpel:sequence>
                                             <bpel:receive name="Receive" partnerLink="AOPPL" operation="CreateAccount" portType="ns:AccountOpeningProcessService" variable="AOPPLRequest" createInstance="yes"/>
                                             <bpel:assign validate="no" name="InitCustomerDataserviceRequest">
                                                <bpel:copy>
                                                   <bpel:from>
                                                      <bpel:literal xml:space="preserve">
                                                         <ns0:op1 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
                                                            <ns0:NID/>
                                                            <ns0:Name/>
                                                         </ns0:op1>
                                                      </bpel:literal>
                                                   </bpel:from>
                                                   <bpel:to part="parameters" variable="CDSPLRequest">
                                                      <bpel:query queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0">ns0:NID</bpel:query>
                                                   </bpel:to>
                                                </bpel:copy>
                                                <bpel:copy>
                                                   <bpel:from part="parameters" variable="AOPPLRequest">
                                                      <bpel:query queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0">                        nid                    </bpel:query>
                                                   </bpel:from>
                                                   <bpel:to part="parameters" variable="CDSPLRequest">
                                                      <bpel:query queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0">                        ns0:Name                    </bpel:query>
                                                   </bpel:to>
                                                </bpel:copy>
                                                <bpel:copy>
                                                   <bpel:from part="parameters" variable="AOPPLRequest">
                                                      <bpel:query queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0">name</bpel:query>
                                                   </bpel:from>
                                                   <bpel:to part="parameters" variable="CDSPLRequest">
                                                      <bpel:query queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0">ns0:Name</bpel:query>
                                                   </bpel:to>
                                                </bpel:copy>
                                             </bpel:assign>
                                             <bpel:invoke name="Invoke-CustomerDataService" partnerLink="CDSPL" operation="op1" portType="ns0:CustomerDSPortType" inputVariable="CDSPLRequest" outputVariable="CDSPLResponse"/>
                                             <bpel:assign validate="yes" name="InitAccountRequest">
                                                <bpel:copy>
                                                   <bpel:from>
                                                      <bpel:literal xml:space="preserve">
                                                         <hcc:createAccount xmlns:hcc="http://hcc.wso2">
                                                            <hcc:customerId/>
                                                            <hcc:isNewCustomer/>
                                                            <hcc:accountType/>
                                                         </hcc:createAccount>
                                                      </bpel:literal>
                                                   </bpel:from>
                                                   <bpel:to part="parameters" variable="ADSPLRequest"/>
                                                </bpel:copy>
                                                <bpel:copy>
                                                   <bpel:from part="parameters" variable="CDSPLResponse">
                                                      <bpel:query queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0">                        ns0:Entry[1]/ns0:Customer                    </bpel:query>
                                                   </bpel:from>
                                                   <bpel:to part="parameters" variable="ADSPLRequest">
                                                      <bpel:query queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0">ns1:customerId</bpel:query>
                                                   </bpel:to>
                                                </bpel:copy>
                                                <bpel:copy>
                                                   <bpel:from part="parameters" variable="CDSPLResponse">
                                                      <bpel:query queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0">ns0:Entry[1]/ns0:Flag</bpel:query>
                                                   </bpel:from>
                                                   <bpel:to part="parameters" variable="ADSPLRequest">
                                                      <bpel:query queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0">ns1:isNewCustomer</bpel:query>
                                                   </bpel:to>
                                                </bpel:copy>
                                                <bpel:copy>
                                                   <bpel:from part="parameters" variable="AOPPLRequest">
                                                      <bpel:query queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0">accountType</bpel:query>
                                                   </bpel:from>
                                                   <bpel:to part="parameters" variable="ADSPLRequest">
                                                      <bpel:query queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0">ns1:accountType</bpel:query>
                                                   </bpel:to>
                                                </bpel:copy>
                                             </bpel:assign>
                                             <bpel:invoke name="Invoke-AccountService" partnerLink="ADSPL" operation="createAccount" portType="ns1:AccountDetailServicePortType" inputVariable="ADSPLRequest" outputVariable="ADSPLResponse"/>
                                             <bpel:if name="IfNewCustomer">
                                                <bpel:condition expressionLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0">$CDSPLResponse.parameters/ns0:Entry[1]/ns0:Flag = 0</bpel:condition>
                                                <bpel:sequence name="Sequence">
                                                   <bpel:assign validate="no" name="InitCardServiceRequest">
                                                      <bpel:copy>
                                                         <bpel:from>
                                                            <bpel:literal xml:space="preserve">
                                                               <sam:issueCard xmlns:sam="http://sample.wso2.org">
                                                                  <sam:customerID>?</sam:customerID>
                                                                  <sam:isExistingCustomer>?</sam:isExistingCustomer>
                                                                  <sam:customerName>?</sam:customerName>
                                                                  <sam:accountNo>?</sam:accountNo>
                                                               </sam:issueCard>
                                                            </bpel:literal>
                                                         </bpel:from>
                                                         <bpel:to part="parameters" variable="CSPLRequest"/>
                                                      </bpel:copy>
                                                      <bpel:copy>
                                                         <bpel:from part="parameters" variable="CDSPLResponse">
                                                            <bpel:query queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0">ns0:Entry[1]/ns0:Customer</bpel:query>
                                                         </bpel:from>
                                                         <bpel:to part="parameters" variable="CSPLRequest">
                                                            <bpel:query queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0">ns2:customerID</bpel:query>
                                                         </bpel:to>
                                                      </bpel:copy>
                                                      <bpel:copy>
                                                         <bpel:from part="parameters" variable="CDSPLResponse">
                                                            <bpel:query queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0">ns0:Entry[1]/ns0:Flag</bpel:query>
                                                         </bpel:from>
                                                         <bpel:to part="parameters" variable="CSPLRequest">
                                                            <bpel:query queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0">ns2:isExistingCustomer</bpel:query>
                                                         </bpel:to>
                                                      </bpel:copy>
                                                      <bpel:copy>
                                                         <bpel:from part="parameters" variable="ADSPLResponse">
                                                            <bpel:query queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0">ns1:return/hcc:accountNo</bpel:query>
                                                         </bpel:from>
                                                         <bpel:to part="parameters" variable="CSPLRequest">
                                                            <bpel:query queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0">ns2:accountNo</bpel:query>
                                                         </bpel:to>
                                                      </bpel:copy>
                                                      <bpel:copy>
                                                         <bpel:from part="parameters" variable="AOPPLRequest">
                                                            <bpel:query queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0">name</bpel:query>
                                                         </bpel:from>
                                                         <bpel:to part="parameters" variable="CSPLRequest">
                                                            <bpel:query queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0">ns2:customerName</bpel:query>
                                                         </bpel:to>
                                                      </bpel:copy>
                                                   </bpel:assign>
                                                   <bpel:invoke name="Invoke-CardService" partnerLink="CSPL" operation="issueCard" portType="ns2:CardServicePortType" inputVariable="CSPLRequest" outputVariable="CSPLResponse"/>
                                                   <bpel:assign validate="no" name="InitResponse">
                                                      <bpel:copy>
                                                         <bpel:from part="parameters" variable="CSPLResponse"/>
                                                         <bpel:to part="parameters" variable="AOPPLResponse"/>
                                                      </bpel:copy>
                                                   </bpel:assign>
                                                </bpel:sequence>
                                                <bpel:else>
                                                   <bpel:sequence name="Sequence1">
                                                      <bpel:assign validate="no" name="InitResponse">
                                                         <bpel:copy>
                                                            <bpel:from>
                                                               <bpel:literal xml:space="preserve">
                                                                  <issueCardResponse xmlns="http://sample.wso2.org">
                                                                     <return>
                                                                        <accountNo xmlns="http://sample.wso2.org/xsd"/>
                                                                        <customerID xmlns="http://sample.wso2.org/xsd"/>
                                                                     </return>
                                                                  </issueCardResponse>
                                                               </bpel:literal>
                                                            </bpel:from>
                                                            <bpel:to part="parameters" variable="AOPPLResponse"/>
                                                         </bpel:copy>
                                                         <bpel:copy>
                                                            <bpel:from part="parameters" variable="ADSPLResponse">
                                                               <bpel:query queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0">ns1:return/hcc:accountNo</bpel:query>
                                                            </bpel:from>
                                                            <bpel:to part="parameters" variable="AOPPLResponse">
                                                               <bpel:query queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0">ns2:return/xsd:accountNo</bpel:query>
                                                            </bpel:to>
                                                         </bpel:copy>
                                                         <bpel:copy>
                                                            <bpel:from part="parameters" variable="CDSPLResponse">
                                                               <bpel:query queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0">                                    ns0:Entry[1]/ns0:Customer                                </bpel:query>
                                                            </bpel:from>
                                                            <bpel:to part="parameters" variable="AOPPLResponse">
                                                               <bpel:query queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0">                                    ns2:return/xsd:customerID                                </bpel:query>
                                                            </bpel:to>
                                                         </bpel:copy>
                                                      </bpel:assign>
                                                   </bpel:sequence>
                                                </bpel:else>
                                             </bpel:if>
                                             <bpel:reply name="Reply" partnerLink="AOPPL" operation="CreateAccount" portType="ns:AccountOpeningProcessService" variable="AOPPLResponse"/>
                                          </bpel:sequence>
                                       </bpel:process>

当我点击 BPEL 面板上的“try it”按钮时,我得到以下用于 SOAP 消息传递的界面。在这种情况下,我将值设置为 1 和 PIS。

<body>
   <p:CreateAccount xmlns:p="http://wso2.org/banking">
      <!--Exactly 1 occurrence-->
      <nid>"1"</nid>
      <!--Exactly 1 occurrence-->
      <name>"PIS"</name>
      <!--Exactly 1 occurrence-->
      <accountType>?</accountType>
   </p:CreateAccount>
</body>

这种情况下的响应如下:

<soapenv:Fault xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
   <faultcode>soapenv:Server</faultcode>
   <faultstring xmlns:axis2ns6="http://docs.oasis-open.org/wsbpel/2.0/process/executable">axis2ns6:selectionFailure</faultstring>
   <detail/>
</soapenv:Fault>

服务器的堆栈跟踪如下:

TID: [0] [BPS] [2013-10-28 01:35:22,647]  WARN {org.apache.ode.bpel.engine.BpelProcess} -  Instance 3105 of {http://wso2.org/sample/banking}AccountOpeningProcess-9 has completed with fault: FaultData: [faultName={http://docs.oasis-open.org/wsbpel/2.0/process/executable}selectionFailure, faulType=null ({http://docs.oasis-open.org/wsbpel/2.0/process/executable}selectionFailure: No results for expression: 'ns0:NID' against '<?xml version="1.0" encoding="UTF-8"?>
<op1 xmlns="http://ws.wso2.org/dataservice"/>')] @49 {org.apache.ode.bpel.engine.BpelProcess}
TID: [0] [BPS] [2013-10-28 01:35:29,143]  INFO {org.apache.ode.bpel.runtime.ASSIGN} -  Assignment Fault: {http://docs.oasis-open.org/wsbpel/2.0/process/executable}selectionFailure,lineNo=49,faultExplanation={http://docs.oasis-open.org/wsbpel/2.0/process/executable}selectionFailure: No results for expression: 'ns0:NID' against '<?xml version="1.0" encoding="UTF-8"?>
<op1 xmlns="http://ws.wso2.org/dataservice"/>' {org.apache.ode.bpel.runtime.ASSIGN}
TID: [0] [BPS] [2013-10-28 01:35:29,143]  INFO {org.apache.ode.bpel.runtime.ASSIGN} -  Assignment Fault: {http://docs.oasis-open.org/wsbpel/2.0/process/executable}selectionFailure,lineNo=49,faultExplanation={http://docs.oasis-open.org/wsbpel/2.0/process/executable}selectionFailure: No results for expression: 'ns0:NID' against '<?xml version="1.0" encoding="UTF-8"?>
<op1 xmlns="http://ws.wso2.org/dataservice"/>' {org.apache.ode.bpel.runtime.ASSIGN}
TID: [0] [BPS] [2013-10-28 01:35:29,149]  WARN {org.apache.ode.bpel.engine.BpelProcess} -  Instance 3106 of {http://wso2.org/sample/banking}AccountOpeningProcess-9 has completed with fault: FaultData: [faultName={http://docs.oasis-open.org/wsbpel/2.0/process/executable}selectionFailure, faulType=null ({http://docs.oasis-open.org/wsbpel/2.0/process/executable}selectionFailure: No results for expression: 'ns0:NID' against '<?xml version="1.0" encoding="UTF-8"?>
<op1 xmlns="http://ws.wso2.org/dataservice"/>')] @49 {org.apache.ode.bpel.engine.BpelProcess}
TID: [0] [BPS] [2013-10-28 01:35:29,149]  WARN {org.apache.ode.bpel.engine.BpelProcess} -  Instance 3106 of {http://wso2.org/sample/banking}AccountOpeningProcess-9 has completed with fault: FaultData: [faultName={http://docs.oasis-open.org/wsbpel/2.0/process/executable}selectionFailure, faulType=null ({http://docs.oasis-open.org/wsbpel/2.0/process/executable}selectionFailure: No results for expression: 'ns0:NID' against '<?xml version="1.0" encoding="UTF-8"?>
<op1 xmlns="http://ws.wso2.org/dataservice"/>')] @49 {org.apache.ode.bpel.engine.BpelProcess}
4

3 回答 3

2

欢迎来到 XML 命名空间的狂野世界。坐下,不好看。

非常重要: XML 名称空间看起来像 URL,但它们不是网页地址。它们只是唯一的字符串,标准的 web-URL-looking-thing 似乎工作得很好。

基本上,XML 文件中的每个元素(包括 BPEL 文件和您的输入文件)都分配给一个名称空间。这些以多种方式定义,包括targetNamespace在封闭元素中分配默认命名空间 (a),以及使用缩写定义命名空间,然后在元素名称前添加前缀以给出完整定义。

因此,在 BPEL 文件的顶部,在实际<bpel:process标记中,您可以像这样定义 XML 命名空间ns0xmlns:ns0="http://ws.wso2.org/dataservice".

因此,当您在 copy / from 元素中指定要在 BPEL 中查找的字段时,如下所示:

   <ns0:op1 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
       <ns0:NID/>
       <ns0:Name/>
   </ns0:op1>

它正在寻找元素 op1NID以及Name要在http://ws.wso2.org/dataservice命名空间中的元素。

但这实际上是

  1. 错误,根据适用的 WSDL(见下文)
  2. 不是您在 XML 文件中提供的(或至少在上面发布的 XML 中)。

因为您正在使用工具来获取输入,所以修复点 1. 可能(可能?)修复点 2。

如果我们分解您正在尝试执行的操作以及 XML 正在计算的内容:

您正在调用CreateAccount操作(第 37 行)

<bpel:receive name="Receive" partnerLink="AOPPL" operation="CreateAccount" portType="ns:AccountOpeningProcessService" variable="AOPPLRequest" createInstance="yes"/>

所以它正在寻找一个名为AOPPLRequest. 这是上面定义的(第 22 行):<bpel:variable name="AOPPLRequest" messageType="ns:CreateAccountRequest"/>

这表示它将是使用前缀 CreateAccountRequest定义的命名空间中的类型。ns

ns前缀也在第 1 行中定义:-xmlns:ns="http://wso2.org/banking" 重要 这是您应该在复制命令中提供和查找的实际命名空间。

我实际上想找到CreateAccountRequest消息的有效结构是什么。

第 10 行是这样说的:<bpel:import namespace="http://wso2.org/banking" location="AccountOpeningProcessService.wsdl" importType="http://schemas.xmlsoap.org/wsdl/"/>

这很好,因为 WSDL 文件用于定义 Web 服务。谷歌在这里提供帮助,所以我用谷歌搜索AccountOpeningProcessService.wsdl并获得了 wso2 svn 存储库的链接,这对我来说已经足够了: https ://svn.wso2.org/repos/wso2/trunk/tools/ide/eclipse/docs/src/ main/resources/samples/banking-sample/Webinar/AccountOpeningProcess/ 还有我想要的 WSDL 文件的链接。 https://svn.wso2.org/repos/wso2/trunk/tools/ide/eclipse/docs/src/main/resources/samples/banking-sample/Webinar/AccountOpeningProcess/AccountOpeningProcessService.wsdl

该 WSDL 文件包含此 gem:

<xsd:schema targetNamespace="http://wso2.org/banking">
    <xsd:element name="CreateAccount">
        <xsd:complexType>
            <xsd:sequence>
                <xsd:element name="nid" type="xsd:string" />
                <xsd:element name="name" type="xsd:string"></xsd:element>
                <xsd:element name="accountType" type="xsd:string"></xsd:element>
            </xsd:sequence>
        </xsd:complexType>
    </xsd:element>

请注意targetNamespace那里,这基本上意味着“如果我不给你一个命名空间,那么使用这个作为默认值”,所以这里定义的所有内容都在命名空间中http://wso2.org/banking

这很好,因为这是我们之前在第 22 行中确定的命名空间,指的是第 37 行中的元素。

这意味着,您的copy结构的这个片段(从第 71 行开始)似乎是问题所在:

<bpel:assign validate="no" name="InitCustomerDataserviceRequest">
    <bpel:copy>
       <bpel:from>
          <bpel:literal xml:space="preserve">
             <ns0:op1 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
                <ns0:NID/>
                <ns0:Name/>
             </ns0:op1>
          </bpel:literal>
       </bpel:from>

http://ws.wso2.org/dataservice 它在命名空间(ns0如第一行中定义)中寻找元素,而不是在第一行中定义的命名空间http://wso2.org/bankingns

因此,我建议(无需访问 wso2),您可以找到一种方法将该副本从元素更改为:

   <bpel:assign validate="no" name="InitCustomerDataserviceRequest">
        <bpel:copy>
           <bpel:from>
              <bpel:literal xml:space="preserve">
                 <ns:op1 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
                    <ns:NID/>
                    <ns:Name/>
                 </ns:op1>
              </bpel:literal>
           </bpel:from>

即更改ns0:ns:- 从而将它们放入正确的名称空间。

不幸的是,这两个名称空间之间的这种不匹配贯穿于您的 BPEL,因此我认为您将面临一场漫长的战斗。

我发现(尤其是使用 JCAPS,无论如何)一旦命名空间像这样被破坏,有时从头开始重新创建 BPEL 会更快。

于 2013-10-28T07:03:57.500 回答
1

在定义您的 jax-ws 服务项目时,提到的 GregHNZ 绝对正确,您需要在 @WebService 注释中定义 targetNameSpave,例如 @WebService(serviceName = "AddServiceImpl", targetNamespace="http://xxx/xxx/services/addService" ) 否则 bpel 将显示您提到的相同错误

于 2013-11-05T15:36:16.683 回答
0

感谢@GregHNZ 的回复。我没有理解其中的某些部分,这有助于我评估我不会像我想象的那样轻松执行此操作。这是我的把戏。我将划分BPEL 应用程序。目前我只专注于 DSS(数据服务调用)。customerDS 的 wsdl 文件可以在下面找到。我只是在寻找来自 BPEL 的电话,要求 DSS 为我获取给定客户的详细信息。如果客户不在那里,请创建一个条目并将其发回给我。(这是MySQL上的程序)。这很好用,因为我已经测试过了。所以这里有一个简单的问题,关于如何制作一个用于调用 DSS 的 BPEL 工作流。这将帮助我了解基础知识。谢谢!PS:customerDS.wsdl

<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:ns0="http://ws.wso2.org/dataservice" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" targetNamespace="http://ws.wso2.org/dataservice">
    <wsdl:documentation />
    <wsdl:types>
        <xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://ws.wso2.org/dataservice">
            <xs:element name="DataServiceFault" type="xs:string" />
            <xs:element name="REQUEST_STATUS" type="xs:string" />
            <xs:element name="op1">
                <xs:complexType>
                    <xs:sequence>

                        <xs:element name="NID" nillable="true" type="xs:string" />
                        <xs:element name="Name" nillable="true" type="xs:string" />
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="Entries" type="ns0:Entries" />
            <xs:complexType name="Entries">
                <xs:sequence>
                    <xs:element maxOccurs="unbounded" minOccurs="0" name="Entry" type="ns0:Entry" />

                </xs:sequence>
            </xs:complexType>
            <xs:complexType name="Entry">
                <xs:sequence>
                    <xs:element name="Flag" nillable="true" type="xs:integer" />
                    <xs:element name="Customer" nillable="true" type="xs:string" />
                </xs:sequence>
            </xs:complexType>
        </xs:schema>

    </wsdl:types>
    <wsdl:message name="op1Request">
        <wsdl:part name="parameters" element="ns0:op1" />
    </wsdl:message>
    <wsdl:message name="op1Response">
        <wsdl:part name="parameters" element="ns0:Entries" />
    </wsdl:message>
    <wsdl:message name="DataServiceFault">
        <wsdl:part name="parameters" element="ns0:DataServiceFault" />

    </wsdl:message>
    <wsdl:portType name="CustomerDSPortType">
        <wsdl:operation name="op1">
            <wsdl:documentation />
            <wsdl:input message="ns0:op1Request" wsaw:Action="urn:op1" />
            <wsdl:output message="ns0:op1Response" wsaw:Action="urn:op1Response" />
            <wsdl:fault message="ns0:DataServiceFault" name="DataServiceFault" wsaw:Action="urn:op1DataServiceFault" />
        </wsdl:operation>
    </wsdl:portType>

    <wsdl:binding name="CustomerDSSOAP11Binding" type="ns0:CustomerDSPortType">
        <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" />
        <wsdl:operation name="op1">
            <soap:operation soapAction="urn:op1" style="document" />
            <wsdl:input>
                <soap:body use="literal" />
            </wsdl:input>
            <wsdl:output>
                <soap:body use="literal" />

            </wsdl:output>
            <wsdl:fault name="DataServiceFault">
                <soap:fault use="literal" name="DataServiceFault" />
            </wsdl:fault>
        </wsdl:operation>
    </wsdl:binding>
    <wsdl:binding name="CustomerDSSOAP12Binding" type="ns0:CustomerDSPortType">
        <soap12:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" />
        <wsdl:operation name="op1">

            <soap12:operation soapAction="urn:op1" style="document" />
            <wsdl:input>
                <soap12:body use="literal" />
            </wsdl:input>
            <wsdl:output>
                <soap12:body use="literal" />
            </wsdl:output>
            <wsdl:fault name="DataServiceFault">
                <soap12:fault use="literal" name="DataServiceFault" />

            </wsdl:fault>
        </wsdl:operation>
    </wsdl:binding>
    <wsdl:binding name="CustomerDSHttpBinding" type="ns0:CustomerDSPortType">
        <http:binding verb="POST" />
        <wsdl:operation name="op1">
            <http:operation location="op1" />
            <wsdl:input>
                <mime:content type="text/xml" part="parameters" />

            </wsdl:input>
            <wsdl:output>
                <mime:content type="text/xml" part="parameters" />
            </wsdl:output>
        </wsdl:operation>
    </wsdl:binding>
    <wsdl:service name="CustomerDS">
        <wsdl:port name="SOAP11Endpoint" binding="ns0:CustomerDSSOAP11Binding">
            <soap:address location="http://localhost:9769/services/CustomerDS" />

        </wsdl:port>
        <!--wsdl:port name="SecureSOAP11Endpoint" binding="ns0:CustomerDSSOAP11Binding">
            <soap:address location="https://10.216.163.231:9443/services/CustomerDS.SecureSOAP11Endpoint/" />
        </wsdl:port>
        <wsdl:port name="SecureSOAP12Endpoint" binding="ns0:CustomerDSSOAP12Binding">
            <soap12:address location="https://10.216.163.231:9443/services/CustomerDS.SecureSOAP12Endpoint/" />
        </wsdl:port>
        <wsdl:port name="SOAP12Endpoint" binding="ns0:CustomerDSSOAP12Binding">
            <soap12:address location="http://10.216.163.231:9763/services/CustomerDS.SOAP12Endpoint/" />

        </wsdl:port>
        <wsdl:port name="HTTPEndpoint" binding="ns0:CustomerDSHttpBinding">
            <http:address location="http://10.216.163.231:9763/services/CustomerDS.HTTPEndpoint/" />
        </wsdl:port>
        <wsdl:port name="SecureHTTPEndpoint" binding="ns0:CustomerDSHttpBinding">
            <http:address location="https://10.216.163.231:9443/services/CustomerDS.SecureHTTPEndpoint/" />
        </wsdl:port-->
    </wsdl:service>
</wsdl:definitions>
于 2013-10-28T16:48:47.807 回答