Hi Henrik,
I am sorry, the configuration I posted was wrong please try the following as
the target in your proxy configuration;
<target>
<inSequence>
<send>
<endpoint>
<address uri="
http://SERVERNAME_HIDDDEN/ValidateCLI/TelewestBindingPort<http://servername_hiddden/ValidateCLI/TelewestBindingPort>
"/>
</endpoint>
</send>
</inSequence>
<outSequence>
<send/>
</outSequence>
</target>
Also please note that the SERVERNAME_HIDDEN has to be replaced with your
actual server name where you host the ValidateCLI service, I assume you have
done this, but just to make sure. :-)
Thanks,
Ruwan
On Fri, Dec 12, 2008 at 11:24 PM, Henrik Pettersen <
[email protected]> wrote:
> Hi Ruwan,
>
> thank you for your help, this is very, very helpfull. I'm completely stuck
> here.
>
> I changed the Synapse configuration to look like this:
>
> <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">
> <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>
>
> <parameter name="useOriginalwsdl">true</parameter>
> <parameter name="modifyUserWSDLPortAddress">true</parameter>
>
> <target>
> <inSequence>
> <send>
> <endpoint address="
> http://SERVERNAME_HIDDDEN/ValidateCLI/TelewestBindingPort"/>
> </send>
> </inSequence>
> <outSequence>
> <send/>
> </outSequence>
> </target>
>
> </proxy>
> </definitions>
>
> which I hope is what you indicated to me in your previous email. But
> unfortunately, this leads to a NullpointerException when Synapse tries to
> start up:
>
> java.lang.NullPointerException
> at
>
> org.apache.synapse.config.xml.endpoints.EndpointFactory.handleException(EndpointFactory.java:475)
> at
>
> org.apache.synapse.config.xml.endpoints.EndpointFactory.getEndpointFactory(EndpointFactory.java:439)
> at
>
> org.apache.synapse.config.xml.endpoints.EndpointFactory.getEndpointFromElement(EndpointFactory.java:67)
> at
>
> org.apache.synapse.config.xml.SendMediatorFactory.createMediator(SendMediatorFactory.java:90)
> at
>
> org.apache.synapse.config.xml.MediatorFactoryFinder.getMediator(MediatorFactoryFinder.java:173)
> at
>
> org.apache.synapse.config.xml.AbstractListMediatorFactory.addChildren(AbstractListMediatorFactory.java:39)
> at
>
> org.apache.synapse.config.xml.SequenceMediatorFactory.createAnonymousSequence(SequenceMediatorFactory.java:63)
> at
>
> org.apache.synapse.config.xml.ProxyServiceFactory.createProxy(ProxyServiceFactory.java:167)
> at
>
> org.apache.synapse.config.xml.SynapseXMLConfigurationFactory.defineProxy(SynapseXMLConfigurationFactory.java:148)
> at
>
> org.apache.synapse.config.xml.SynapseXMLConfigurationFactory.getConfiguration(SynapseXMLConfigurationFactory.java:84)
> at
>
> org.apache.synapse.config.xml.ConfigurationFactoryAndSerializerFinder.getConfiguration(ConfigurationFactoryAndSerializerFinder.java:160)
> at
>
> org.apache.synapse.config.xml.XMLConfigurationBuilder.getConfiguration(XMLConfigurationBuilder.java:46)
> at
>
> org.apache.synapse.config.SynapseConfigurationBuilder.getConfiguration(SynapseConfigurationBuilder.java:74)
> at
>
> org.apache.synapse.core.axis2.SynapseInitializationModule.getConfiguration(SynapseInitializationModule.java:171)
> at
>
> org.apache.synapse.core.axis2.SynapseInitializationModule.init(SynapseInitializationModule.java:95)
> at
>
> org.apache.axis2.context.ConfigurationContextFactory.initModules(ConfigurationContextFactory.java:248)
> at
>
> org.apache.axis2.context.ConfigurationContextFactory.init(ConfigurationContextFactory.java:226)
> at
>
> org.apache.axis2.context.ConfigurationContextFactory.createConfigurationContext(ConfigurationContextFactory.java:93)
> at
>
> org.apache.axis2.context.ConfigurationContextFactory.createConfigurationContextFromFileSystem(ConfigurationContextFactory.java:206)
> at org.apache.synapse.ServerManager.start(ServerManager.java:101)
> at org.apache.synapse.SynapseServer.main(SynapseServer.java:82)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
> at java.lang.reflect.Method.invoke(Unknown Source)
> at
> org.tanukisoftware.wrapper.WrapperSimpleApp.run(WrapperSimpleApp.java:240)
> at java.lang.Thread.run(Unknown Source)
> 2008-12-12 17:43:16,195 [172.19.64.188-FRY] [WrapperSimpleAppMain] FATAL
> ServerManager Synapse startup failed...
> org.apache.synapse.SynapseException: Could not initialize Synapse : null
> at
>
> org.apache.synapse.config.SynapseConfigurationBuilder.handleException(SynapseConfigurationBuilder.java:90)
> at
>
> org.apache.synapse.config.SynapseConfigurationBuilder.getConfiguration(SynapseConfigurationBuilder.java:83)
> at
>
> org.apache.synapse.core.axis2.SynapseInitializationModule.getConfiguration(SynapseInitializationModule.java:171)
> at
>
> org.apache.synapse.core.axis2.SynapseInitializationModule.init(SynapseInitializationModule.java:95)
> at
>
> org.apache.axis2.context.ConfigurationContextFactory.initModules(ConfigurationContextFactory.java:248)
> at
>
> org.apache.axis2.context.ConfigurationContextFactory.init(ConfigurationContextFactory.java:226)
> at
>
> org.apache.axis2.context.ConfigurationContextFactory.createConfigurationContext(ConfigurationContextFactory.java:93)
> at
>
> org.apache.axis2.context.ConfigurationContextFactory.createConfigurationContextFromFileSystem(ConfigurationContextFactory.java:206)
> at org.apache.synapse.ServerManager.start(ServerManager.java:101)
> at org.apache.synapse.SynapseServer.main(SynapseServer.java:82)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
> at java.lang.reflect.Method.invoke(Unknown Source)
> at
> org.tanukisoftware.wrapper.WrapperSimpleApp.run(WrapperSimpleApp.java:240)
> at java.lang.Thread.run(Unknown Source)
> Caused by: java.lang.NullPointerException
> at
>
> org.apache.synapse.config.xml.endpoints.EndpointFactory.handleException(EndpointFactory.java:475)
> at
>
> org.apache.synapse.config.xml.endpoints.EndpointFactory.getEndpointFactory(EndpointFactory.java:439)
> at
>
> org.apache.synapse.config.xml.endpoints.EndpointFactory.getEndpointFromElement(EndpointFactory.java:67)
> at
>
> org.apache.synapse.config.xml.SendMediatorFactory.createMediator(SendMediatorFactory.java:90)
> at
>
> org.apache.synapse.config.xml.MediatorFactoryFinder.getMediator(MediatorFactoryFinder.java:173)
> at
>
> org.apache.synapse.config.xml.AbstractListMediatorFactory.addChildren(AbstractListMediatorFactory.java:39)
> at
>
> org.apache.synapse.config.xml.SequenceMediatorFactory.createAnonymousSequence(SequenceMediatorFactory.java:63)
> at
>
> org.apache.synapse.config.xml.ProxyServiceFactory.createProxy(ProxyServiceFactory.java:167)
> at
>
> org.apache.synapse.config.xml.SynapseXMLConfigurationFactory.defineProxy(SynapseXMLConfigurationFactory.java:148)
> at
>
> org.apache.synapse.config.xml.SynapseXMLConfigurationFactory.getConfiguration(SynapseXMLConfigurationFactory.java:84)
> at
>
> org.apache.synapse.config.xml.ConfigurationFactoryAndSerializerFinder.getConfiguration(ConfigurationFactoryAndSerializerFinder.java:160)
> at
>
> org.apache.synapse.config.xml.XMLConfigurationBuilder.getConfiguration(XMLConfigurationBuilder.java:46)
> at
>
> org.apache.synapse.config.SynapseConfigurationBuilder.getConfiguration(SynapseConfigurationBuilder.java:74)
> ... 14 more
>
> so I also tried this Synapse configuration:
>
> <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">
>
> <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>
>
> <parameter name="useOriginalwsdl">true</parameter>
> <parameter name="modifyUserWSDLPortAddress">true</parameter>
>
>
> <target>
> <inSequence>
> <send>
> <endpoint>
> <address>
> http://SERVERNAME_HIDDDEN/ValidateCLI/TelewestBindingPort</address>
> </endpoint>
> </send>
> </inSequence>
> <outSequence>
> <send/>
> </outSequence>
> </target>
> </proxy>
> </definitions>
>
> but this last configuration gives me the same behaviour as before (202
> Accepted and empty response body). Any ideas?
>
> Thanks again, everyone!
>
> Henrik
>
> 2008/12/12 Ruwan Linton <[email protected]>:
> > Hi Henrik,
> >
> > Please change the configuration of the proxy inSequence and the
> outSequence
> > to the following and see whether it works;
> >
> > <inSequence>
> > <send><endpoint address="
> > http://SERVER_NAME_AND_PORT_HIDDEN/ValidateCLI/TelewestBindingPort
> "/></send>
> > </inSequence>
> > <outSequence>
> > <send/>
> > </outSequence>
> >
> > If you do not specify an outSequence we assume it to be send back but in
> > your case there is an outSequence but it is empty :-(
> >
> > Hope this will help you..
> >
> > Thanks,
> > Ruwan
> >
> > 2008/12/12 Henrik Pettersen <[email protected]>
> >
> >> 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/
> >>>
> >>
> >>
> >
> >
> > --
> > Ruwan Linton
> > http://wso2.org - "Oxygenating the Web Services Platform"
> > http://ruwansblog.blogspot.com/
> >
>
--
Ruwan Linton
http://wso2.org - "Oxygenating the Web Services Platform"
http://ruwansblog.blogspot.com/