You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ode.apache.org by "Alex Boisvert (JIRA)" <ji...@apache.org> on 2007/06/15 23:45:26 UTC

[jira] Updated: (ODE-147) BPEL runtime is generating faulty soap message?

     [ 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.