I'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:Body>
         
            <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:Body>
         
            <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


        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>
                
                        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">
                
                        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">
                
                        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">
    
        location="HelloWorld2-RPC.wsdl" namespace="urn:/HelloWorld2-RPC.wsdl" />
    
        location="weather.wsdl"
        namespace="http://www.webservicex.net"; />
    
        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>





       
____________________________________________________________________________________
Looking for a deal? Find great prices on flights and hotels with Yahoo! 
FareChase.
http://farechase.yahoo.com/

Reply via email to