I think we need to improve Synapse (and Axis2) to support this model.
Paul
PS In fact, I'd really like to see Synapse allow exact URLs to be
specified:
for example
<proxy name="blah>
<url="http://server.com/myurl/2008-09-09/service">
...
</proxy>
On Wed, Mar 5, 2008 at 6:26 PM, Ruwan Linton <[EMAIL PROTECTED]>
wrote:
Hi john,
This is expected, even though Synapse proxy services lets you create a
proxy
with the '/' character, it is a special character for the URL based
dispatching because it breaks the splits the String representation of
the
URL from the '/' character to find the service. Due to the presence of
the
'/' in the name of the service, URL based dispatcher will not be able
to
dispatch this because it only sees the version number as the service
name
after the splitting.
Workaround for this is either to eliminate the '/' character and use
some
other character instead or send the version as a parameter, for example
http://synserv/soap/2007-10-10/MyService ==>
http://synserv/soap/2007-10-10_MyService<
http://synserv/soap/2007-10-10/MyService>
or
http://synserv/soap/2007-10-10/MyService ==>
http://synserv/soap/MyService?<http://synserv/soap/2007-10-10/MyService
version=2007-10-10 <http://synserv/soap/2007-10-10/MyService>
Even here for the second case you will have to use a router inside the
mediation to decide the correct service, but this approach is more
towards
the HTTP semantics.
Will it be possible for you to use one of these strategies?
Thanks,
Ruwan
On Wed, Mar 5, 2008 at 11:28 PM, J Bouck <[EMAIL PROTECTED]> wrote:
> I would like to use synapse to make available several versions of a
> web service available at the same time in the same synapse server.
It
> would seem to me that a logical way to version the web services is by
> date of deployment. I would like to define synapse to have proxies
> defined like:
> http://synserv/soap/2007-10-10/MyService -> version 1 of the service
> http://synserv/soap/2008-01-10/MyService -> version 2 of the service
> http://synserv/soap/2008-03-05/MyService -> version 3 of the service
> I know that I could do content-based versioning
> (http://wso2.org/library/2611), but I feel that versioning at the
> url/endpoint is the simpler solution. Synapse 1.1.1 will let you
> define a proxy service called "2008-03-05/MyService", but at
run-time
> and discovery it does nothing but Accept (202) or redirect (302) you
> to the http://synserv/soap location. It seems like a bug to me.
> Synapse or Axis2 doesn't seem to like services with a slash (/) in
> them like:
> <proxy name="2008-03-05/StockQuoteProxy" transports="https">
> <target inSequence="inbound" outSequence="outbound"
> faultSequence="textfault"/>
> <publishWSDL
>
>
uri="file:repository/conf/sample/resources/proxy/sample_proxy_1.wsdl"/>
> </proxy>
>
> Any suggestions on a url-based versioning scheme that can be done
with
> synapse configuration?
>
> ~john
>
--
Ruwan Linton
http://www.wso2.org - "Oxygenating the Web Services Platform"
--
Paul Fremantle
Co-Founder and VP of Technical Sales, WSO2
Apache Synapse PMC Chair
OASIS WS-RX TC Co-chair
blog: http://pzf.fremantle.org
[EMAIL PROTECTED]
"Oxygenating the Web Service Platform", www.wso2.com
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]