[ 
https://issues.apache.org/jira/browse/ODE-147?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Alex Boisvert updated ODE-147:
------------------------------

    Attachment: HelloWorld2-RPC.zip

Attaching a working service assembly (see 
assembly/build/HelloWorld2-RPC-sa.zip) and Ant project that I've used to test.

Apparently the following assignments don't work:

    <bpws:from part="text" variable="request">
        <bpws:query> /text/text() </bpws:query>
    </bpws:from>
    <bpws:to part="parameters"  variable="weatherPartnerLinkRequest">
        <bpws:query> /ns0:ZipCode </bpws:query>
    </bpws:to>

whereas these work:

    <bpws:from> $request.text/text/text() </bpws:from>
    <bpws:to> $weatherPartnerLinkRequest.parameters/ns0:ZipCode </bpws:to>

so there's a good chance this is related to ODE-143.

> BPEL runtime is generating faulty soap message?
> -----------------------------------------------
>
>                 Key: ODE-147
>                 URL: https://issues.apache.org/jira/browse/ODE-147
>             Project: Ode
>          Issue Type: Bug
>          Components: BPEL Compilation/Parsing, BPEL Runtime
>    Affects Versions: 1.1-incubating
>            Reporter: Dan
>            Priority: Blocker
>         Attachments: HelloWorld2-RPC.zip
>
>
> 'm trying to call an external webservice using a http-provider-bc. See the 
> wsdl for the external webservice and the bpel code at the end of this 
> message. Looks like the bpel is responsible for generating a faulty soap 
> message?
> The correct soap message should look like (generated by a different client 
> app written in java)
> <?xml version='1.0' encoding='UTF-8'?>
>    <soapenv:Envelope 
> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";>
>       <soapenv:Body>
>          <ns1:echo xmlns:ns1="http://nec.com/xsd";>
>             <ns1:req>
>                <ns1:request>Echo Test!</ns1:request>
>             </ns1:req>
>          </ns1:echo>
>       </soapenv:Body>
>    </soapenv:Envelope>
> http-bc is generating the following
> <?xml version='1.0' encoding='UTF-8'?>
>    <env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/";>
>       <env:Body>
>          <echo xmlns="urn:/HelloWorld2-RPC.wsdl" 
> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"; 
> xmlns:xsd="http://www.w3.org/2001/XMLSchema"; 
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
> xmlns="http://nec.com/xsd";>
>             <text xmlns="">Echo Test!</text>
>          </echo>
>       </env:Body>
>    </env:Envelope>
> Following are the problems in the soap message generated by bc
> Prob 1. Soap message part req is missing in the 2nd one.
> Prob 2. a. echo tag has duplicate namespaces xmlns="http://nec.com/xsd"; and
> xmlns="urn:/HelloWorld2-RPC.wsdl". Also echo has 
> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"; that also appears in
> env:Envelope.
> I've been trying to fix this for weeks. I think this is a bug. Please let me 
> know. Following is the
> wsdl for external webservice.
> echo.wsdl
> <wsdl:definitions xmlns:axis2="http://nec.com";
>         xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/";
>         xmlns:http="http://schemas.xmlsoap.org/wsdl/http/";
>         xmlns:ns0="http://nec.com/xsd";
>         xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/";
>         xmlns:ns1="http://org.apache.axis2/xsd";
>         xmlns:xs="http://www.w3.org/2001/XMLSchema";
>         xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/";
>         xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/";
>         targetNamespace="http://nec.com";>
>         <wsdl:documentation>Echo</wsdl:documentation>
>         <wsdl:types>
>                 <xs:schema xmlns:ns="http://nec.com/xsd";
>                         attributeFormDefault="qualified" 
> elementFormDefault="qualified"
>                         targetNamespace="http://nec.com/xsd";>
>                         <xs:element name="echo">
>                                 <xs:complexType>
>                                         <xs:sequence>
>                                                 <xs:element name="req" 
> nillable="true"
>                                                         type="ns:Request" />
>                                         </xs:sequence>
>                                 </xs:complexType>
>                         </xs:element>
>                         <xs:element name="Request" type="ns:Request" />
>                         <xs:complexType name="Request">
>                                 <xs:sequence>
>                                         <xs:element name="request" 
> nillable="true"
>                                                 type="xs:string" />
>                                 </xs:sequence>
>                         </xs:complexType>
>                         <xs:element name="echoResponse">
>                                 <xs:complexType>
>                                         <xs:sequence>
>                                                 <xs:element name="return" 
> nillable="true"
>                                                         type="ns:Response" />
>                                         </xs:sequence>
>                                 </xs:complexType>
>                         </xs:element>
>                         <xs:element name="Response" type="ns:Response" />
>                         <xs:complexType name="Response">
>                                 <xs:sequence>
>                                         <xs:element name="respone" 
> nillable="true"
>                                                 type="xs:string" />
>                                 </xs:sequence>
>                         </xs:complexType>
>                 </xs:schema>
>         </wsdl:types>
>         <wsdl:message name="echoMessage">
>                 <wsdl:part name="part1" element="ns0:echo" />
>         </wsdl:message>
>         <wsdl:message name="echoResponse">
>                 <wsdl:part name="part1" element="ns0:echoResponse" />
>         </wsdl:message>
>         <wsdl:portType name="EchoPortType">
>                 <wsdl:operation name="echo">
>                         <wsdl:input
>                                 
> xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl";
>                                 message="axis2:echoMessage" 
> wsaw:Action="urn:echo" />
>                         <wsdl:output message="axis2:echoResponse" />
>                 </wsdl:operation>
>         </wsdl:portType>
>         <wsdl:binding name="EchoSOAP11Binding" type="axis2:EchoPortType">
>                 <soap:binding transport="http://schemas.xmlsoap.org/soap/http";
>                         style="document" />
>                 <wsdl:operation name="echo">
>                         <soap:operation soapAction="urn:echo" 
> style="document" />
>                         <wsdl:input>
>                                 <soap:body use="literal" />
>                         </wsdl:input>
>                         <wsdl:output>
>                                 <soap:body use="literal" />
>                         </wsdl:output>
>                 </wsdl:operation>
>         </wsdl:binding>
>         <wsdl:binding name="EchoSOAP12Binding" type="axis2:EchoPortType">
>                 <soap12:binding 
> transport="http://schemas.xmlsoap.org/soap/http";
>                         style="document" />
>                 <wsdl:operation name="echo">
>                         <soap12:operation soapAction="urn:echo" 
> style="document" />
>                         <wsdl:input>
>                                 <soap12:body use="literal" />
>                         </wsdl:input>
>                         <wsdl:output>
>                                 <soap12:body use="literal" />
>                         </wsdl:output>
>                 </wsdl:operation>
>         </wsdl:binding>
>         <wsdl:binding name="EchoHttpBinding" type="axis2:EchoPortType">
>                 <http:binding verb="POST" />
>                 <wsdl:operation name="echo">
>                         <http:operation location="echo" />
>                         <wsdl:input>
>                                 <mime:content type="text/xml" />
>                         </wsdl:input>
>                         <wsdl:output>
>                                 <mime:content type="text/xml" />
>                         </wsdl:output>
>                 </wsdl:operation>
>         </wsdl:binding>
>         <wsdl:service name="Echo">
>                 <wsdl:port name="EchoSOAP11port_http"
>                         binding="axis2:EchoSOAP11Binding">
>                         <soap:address
>                                 
> location="http://138.15.107.42:8081/axis2/services/Echo"; />
>                 </wsdl:port>
>                 <wsdl:port name="EchoSOAP12port_http"
>                         binding="axis2:EchoSOAP12Binding">
>                         <soap12:address
>                                 
> location="http://138.15.107.42:8081/axis2/services/Echo"; />
>                 </wsdl:port>
>                 <wsdl:port name="EchoHttpport"
>                         binding="axis2:EchoHttpBinding">
>                         <http:address
>                                 
> location="http://138.15.107.42:8081/axis2/services/Echo"; />
>                 </wsdl:port>
>         </wsdl:service>
> </wsdl:definitions> 
> HelloWorld2-RPC.bpel
> <?xml version="1.0" encoding="UTF-8"?>
> <bpws:process
>       xmlns:bpws="http://schemas.xmlsoap.org/ws/2004/03/business-process/";
>       xmlns:hello="urn:/HelloWorld2-RPC.wsdl"
>       xmlns:ns="urn:/HelloWorld2-RPC.bpelArtifacts"
>       xmlns:ns0="http://www.webservicex.net";
>       xmlns:tns="urn:/HelloWorld2-RPC.bpel"
>       xmlns:xsd="http://www.w3.org/2001/XMLSchema"; exitOnStandardFault="yes"
>       name="HelloWorld2-RPC" targetNamespace="urn:/HelloWorld2-RPC.bpel">
>       <bpws:import importType="http://schemas.xmlsoap.org/wsdl/";
>               location="HelloWorld2-RPC.wsdl" 
> namespace="urn:/HelloWorld2-RPC.wsdl" />
>       <bpws:import importType="http://schemas.xmlsoap.org/wsdl/";
>               location="weather.wsdl"
>               namespace="http://www.webservicex.net"; />
>       <bpws:import importType="http://schemas.xmlsoap.org/wsdl/";
>               location="HelloWorld2-RPCArtifacts.wsdl"
>               namespace="urn:/HelloWorld2-RPC.bpelArtifacts" />
>       <bpws:partnerLinks>
>               <bpws:partnerLink myRole="Provider" name="helloPartnerLink"
>                       partnerLinkType="hello:HelloPartnerLinkType" />
>               <bpws:partnerLink name="weatherPartnerLink"
>                       partnerLinkType="ns:weatherPartnerLink"
>                       partnerRole="weatherProvider" />
>       </bpws:partnerLinks>
>       <bpws:variables>
>               <bpws:variable messageType="hello:HelloRequest" name="request" 
> />
>               <bpws:variable messageType="hello:HelloResponse"
>                       name="response" />
>               <bpws:variable name="text" type="xsd:string" />
>               <bpws:variable messageType="ns0:GetWeatherByZipCodeSoapOut"
>                       name="weatherPartnerLinkResponse" />
>               <bpws:variable messageType="ns0:GetWeatherByZipCodeSoapIn"
>                       name="weatherPartnerLinkRequest" />
>       </bpws:variables>
>       <bpws:sequence>
>               <bpws:receive createInstance="yes" name="start"
>                       operation="Hello" partnerLink="helloPartnerLink"
>                       portType="hello:HelloPortType" variable="request" />
>               <bpws:assign name="assignFromRequestToVariable" validate="no">
>                       <bpws:copy>
>                               <bpws:from part="text" variable="request">
>                                       <bpws:query
>                                               
> queryLanguage="http://www.w3.org/TR/1999/REC-xpath-19991116";>
>                                               <![CDATA[/text]]>
>                                       </bpws:query>
>                               </bpws:from>
>                               <bpws:to part="parameters"
>                                       variable="weatherPartnerLinkRequest">
>                                       <bpws:query
>                                               
> queryLanguage="http://www.w3.org/TR/1999/REC-xpath-19991116";>
>                                               <![CDATA[/ns0:ZipCode]]>
>                                       </bpws:query>
>                               </bpws:to>
>                       </bpws:copy>
>               </bpws:assign>
>               <bpws:invoke inputVariable="weatherPartnerLinkRequest"
>                       name="Invoke" operation="GetWeatherByZipCode"
>                       outputVariable="weatherPartnerLinkResponse"
>                       partnerLink="weatherPartnerLink" 
> portType="ns0:WeatherForecastSoap" />
>               <bpws:assign name="assignFromVariableToResponse"
>                       validate="no">
>                       <bpws:copy>
>                               <bpws:from part="parameters"
>                                       variable="weatherPartnerLinkResponse">
>                                       <bpws:query
>                                               
> queryLanguage="http://www.w3.org/TR/1999/REC-xpath-19991116";>
>                                               
> <![CDATA[/ns0:GetWeatherByZipCodeResult]]>
>                                       </bpws:query>
>                               </bpws:from>
>                               <bpws:to part="text" variable="response">
>                                       <bpws:query
>                                               
> queryLanguage="http://www.w3.org/TR/1999/REC-xpath-19991116";>
>                                               <![CDATA[/text]]>
>                                       </bpws:query>
>                               </bpws:to>
>                       </bpws:copy>
>               </bpws:assign>
>               <bpws:reply name="end" operation="Hello"
>                       partnerLink="helloPartnerLink" 
> portType="hello:HelloPortType"
>                       variable="response" />
>       </bpws:sequence>
> </bpws:process>

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to