Hi Ruwan,

thank you for your help. I now have 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 uri="
http://server_name_hidden/ValidateCLI/TelewestBindingPort"/>
                    </endpoint>
                </send>
            </inSequence>
            <outSequence>
                <send/>
            </outSequence>
        </target>
    </proxy>
</definitions>

which still gives me and empty response body and a 202 Accepted. Synapse
logs do not show any exceptions or problems, as far as I can see.

Any suggestions? Could my problems be related to the fact that my webservice
endpoint stubs have been generated with Sun's 'wsimport' instead of the
Axis' 'wsdl2java? Should I perhaps not include the binding port and/or the
service name in the URL?

After a week, I'm still pretty stuck here, attempting to proxy this web
service :-) Any suggestions would be very (very) welcome!

Many thanks!

Henrik

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

> 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/
>

Reply via email to