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.