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>