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
