Hi Ruwan,

please find attached my original WSDL, a sample request envelope, and a diff
of the soapUI debug log for the proxied and non-proxied webservice calls.

The WSDL is also dependent on 3 XML Schema documents, so I have attached
these as well.

Any insight would be much appreciated. Many thanks for your help!

Sincerely,
Henrik Pettersen
Sparkling Ideas, ltd. (for Virgin Media)

2008/12/12 Ruwan Linton <[email protected]>

> Asankha,
>
> On the 1.2 release we did a change in such a way that the outSequence can
> be
> empty in which case we do a send back. So this should work. :-(
>
> I am wondering whether Henrik is trying to invoke an In Only operation. Is
> there any possibility for you to share the WSDL that you are using in this
> case, and a sample message?
>
> Thanks,
> Ruwan
>
> On Thu, Dec 11, 2008 at 10:39 PM, Asankha C. Perera <[email protected]
> >wrote:
>
> > Hi Henrik
> >
> >  I am having a little problem with proxying some webservices with Synapse
> >> (see previous posts today for more history), where I'm finding that the
> >> *response body is empty* when returned to the client. Using soapUI [
> >> http://www.soapui.org/], I have been able to collect some more
> >> information.
> >>
> >> Please find attached:
> >> synapsis.soapui.log.diff.report.htm/ / ==>    An HTML diff report on the
> >> two log entries / files below
> >> soapui.synapsis.service.log              ==>    The request and response
> >> soapUI log when calling the Synapse proxied 'validateCLI' webservice
> >> soapui.original.service.log                ==>    The request and
> response
> >> soapUI log when calling the non-proxied, original, 'validateCLI'
> webservice
> >>
> >> Here is my current synapse.xml:
> >>
> >> <definitions xmlns="http://ws.apache.org/ns/synapse";>
> >>    <localEntry key="validateCli.wsdl"
> >>  src="file:/c:/dev/synapse-1.2/harness/validateCli.wsdl"/>
> >>    <localEntry key="ValidateCLIRequest"
> >>  src="file:/c:/dev/synapse-1.2/harness/ValidateCLIRequest_V1.0.xsd"/>
> >>    <localEntry key="ValidateCLIResponse"
> >> src="file:/c:/dev/synapse-1.2/harness/ValidateCLIResponse_V1.0.xsd"/>
> >>    <localEntry key="CommonTypes"
> >> src="file:/c:/dev/synapse-1.2/harness/commontypes.xsd"/>      <proxy
> >> name="ValidateCLI" transports="http" trace="enable">
> >>        <parameter name="useOriginalwsdl">true</parameter>
> >>        <parameter name="modifyUserWSDLPortAddress">true</parameter>
> >>        <publishWSDL key="validateCli.wsdl" trace="enable">
> >>            <resource location="ValidateCLIRequest_V1.0.xsd"
> >> key="ValidateCLIRequest"/>
> >>            <resource location="ValidateCLIResponse_V1.0.xsd"
> >>  key="ValidateCLIResponse"/>
> >>            <resource location="commontypes.xsd"
> >> key="CommonTypes"/>
> >>        </publishWSDL>
> >>        <target>
> >>            <inSequence>                          <send/>
> >>    </inSequence>
> >>            <outSequence>
> >>            </outSequence>
> >>        </target>
> >>    </proxy>
> >> </definitions>
> >>
> >> I also noted that the the HTTP return codes also differ:
> >>
> >> Original WS call: HTTP/1.1 200 OK
> >> Proxied WS call: HTTP/1.1 202 Accepted
> >>
> >> I am not sure why this is happening (no response body + returning 202
> >> instead of 200), if I am doing something incorrect here or if I simply
> have
> >> an incorrect synapse configuration.
> >>
> >> Has anyone seen this behaviour before? Any help would be greatly
> >> appreciated.
> >>
> > Please follow the basic proxy services samples and basic docs [2]. Your
> > outsequence is empty, thus no response would be forwarded. Also, you
> would
> > need to define a target endpoint, or a <send> mediator which specifies
> the
> > address of the real service endpoint
> >
> > [1] http://synapse.apache.org/Synapse_Samples.html#ProxyServices
> > [2] http://synapse.apache.org/Synapse_QuickStart.html (part 2 of this
> > called Proxy Services)
> >
> >
> > cheers
> > asankha
> >
> > --
> > Asankha C. Perera
> > http://adroitlogic.org
> >
> > http://esbmagic.blogspot.com
> >
> >
>
>
> --
> Ruwan Linton
> http://wso2.org - "Oxygenating the Web Services Platform"
> http://ruwansblog.blogspot.com/
>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"; xmlns:ican="http://ican.web.services"; xmlns:urn="urn:telewest.types.message.request" xmlns:urn1="urn:telewest.types.common">
   <soapenv:Header/>
   <soapenv:Body>
      <ican:InputMsg>
         <urn:RequestHeader>
            <urn1:Id>xxxxx</urn1:Id>
            <!--Optional:-->
            <urn1:Source>TEST</urn1:Source>
            <urn1:User>
               <urn1:UserId>xxxxx</urn1:UserId>
               <!--Optional:-->
               <urn1:Credentials>xxxxx</urn1:Credentials>
            </urn1:User>
         </urn:RequestHeader>
         <urn:Account>
            <!--Optional:-->
            <urn1:SiteId>xx</urn1:SiteId>
            <urn1:AccountNo/>
         </urn:Account>
         <urn1:Telephone Type="HomePhone">xxxxxxxx</urn1:Telephone>
      </ican:InputMsg>
   </soapenv:Body>
</soapenv:Envelope>
<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://schemas.xmlsoap.org/wsdl/"; 
             xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"; 
             xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"; 
             xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"; 
             xmlns:jcapsws="http://ican.web.services"; 
             xmlns:xs="http://www.w3.org/2001/XMLSchema"; 
             xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"; 
             targetNamespace="http://ican.web.services";
>
    <types>
        <xs:schema xmlns:req="urn:telewest.types.message.request" 
                   xmlns:rsp="urn:telewest.types.message.response" 
                   id="UID-xxxxxxx-xxxxxxxxxxxx-xxxxxx-xx" 
                   targetNamespace="http://ican.web.services";
        >
            <xs:import namespace="urn:telewest.types.message.response" schemaLocation="ValidateCLIResponse_V1.0.xsd"/>
            <xs:import namespace="urn:telewest.types.message.request" schemaLocation="ValidateCLIRequest_V1.0.xsd"/>
            <xs:element name="InputMsg" type="req:ValidateCLIRequestCplxType"/>
            <xs:element name="OutputMsg" type="rsp:ValidateCLIResponseCplxType"/>
            <xs:element name="FaultMsg" type="xs:string"/>
        </xs:schema>
    </types>
    <message name="ValidateCLIFault">
        <part name="bodyUPF" element="jcapsws:FaultMsg"/>
    </message>
    <message name="ValidateCLIOutput">
        <part name="bodyUPO" element="jcapsws:OutputMsg"/>
    </message>
    <message name="ValidateCLIInput">
        <part name="bodyUPI" element="jcapsws:InputMsg"/>
    </message>
    <portType name="TelewestPortType">
        <operation name="ValidateCLI">
            <input name="inputMsgUP" message="jcapsws:ValidateCLIInput"/>
            <output name="outputMsgUP" message="jcapsws:ValidateCLIOutput"/>
            <fault name="errorMsgUP" message="jcapsws:ValidateCLIFault"/>
        </operation>
    </portType>
    <binding name="TelewestBinding" type="jcapsws:TelewestPortType">
        <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
        <operation name="ValidateCLI">
            <soap:operation soapAction="urn:ValidateCLI"/>
            <input>
                <soap:body parts="bodyUPI" use="literal"/>
            </input>
            <output>
                <soap:body parts="bodyUPO" use="literal"/>
            </output>
            <fault name="errorMsgUP">
                <soap:fault name="errorMsgUP" use="literal"/>
            </fault>
        </operation>
    </binding>
    <service name="ValidateCLI_Service">
        <port name="TelewestBindingPort" binding="jcapsws:TelewestBinding">
            <soap:address location="http://SERVER_NAME_AND_PORT_HIDDEN/ValidateCLI/TelewestBindingPort"; xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"/>
        </port>
    </service>
</definitions>

Reply via email to