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"
