[ 
https://issues.apache.org/jira/browse/AXIS2-1810?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12779162#action_12779162
 ] 

John Miller commented on AXIS2-1810:
------------------------------------

Tomer,

Currently under Axis, we have versioned our services by basically duplicating 
the WSDL and schemas into a directory that represents the new version. Then, we 
modify the namspace to reflect the version, i.e.: 
www.sample.org/v2.0/ServiceName. This has worked well. However, you can see 
that as the system/services grow duplication of the schemas and WSDL just 
creates a lot of extra code as well as if you decide to keep some of the 
versioned service online and need to make a change to a common schema or fixed 
a issue with an older schema you'll need to replicate that throughout your 
source tree of versioned schemas. The sample above worked as designed under 
Axis and provides a single source tree.

An Example...
resources/wsdl/myservice/MyService.wsdl
resources/wsdl/myservice/v1/MyService.xsd
resources/wsdl/myservice/v2/MyService.xsd
resources/xsd/common/Common.xsd  

When you use wsdl2java to generate the code, it not only creates the versioned 
package names i.e.: org.sample.www.v1_0.myservice and 
org.sample.www.v2_0.myservice but it also creates a SOAPBindingImpl class for 
each version SOAPBindingImplV1 and SOAPBindingImplV2.

Now migrating to Axis2, this also works under Axis2 and Axis2 does handle 
creating Axis style code as well as it can generate a services.xml file that 
gives you a better handle on creating/defining classes to handle/receive the 
SOAP requests for a given service or service group. However, it does create 
different classes and class names (Axis' biggest problem). I'm trying several 
different approaches to handle the different classes created by codegen (Axis2) 
vs wsdl2java (Axis). I'm also looking at using Axis2 AXIOM functionality/Raw 
XML (ReceiverInOut class) and convert the messages using the TypeMapping 
classes under Axis in order to reuse the legacy code which can be upgraded as 
time permits.

Hope this helps. Please let me know what you find/discover via your 
development.and testing.

John

> Cannot deploy multiple versions of the same service
> ---------------------------------------------------
>
>                 Key: AXIS2-1810
>                 URL: https://issues.apache.org/jira/browse/AXIS2-1810
>             Project: Axis 2.0 (Axis2)
>          Issue Type: New Feature
>          Components: kernel
>    Affects Versions: 1.1
>            Reporter: Gul Onural
>            Assignee: Deepal Jayasinghe
>
> I am trying to deploy multiple versions of the same web service without 
> changing the name of the service and wsdl. Instead, I want to be able to do 
> that by changing namespace of the service in the wsdl file and location of 
> the service. For example :
> MyService - version 1
> =================
> ServiceName = MyService
> Location = http://localhost/axis2/services/v1.0/MyService
> Wsdl namespace = http://www.mycompany.com/Namespace1
> MyService - version 2
> =================
> ServiceName = MyService
> Location = http://localhost/axis2/services/v2.0/MyService
> Wsdl namespace = http://www.mycompany.com/Namespace2
> Currently Axis2 doesn't have a mechanism to deploy multiple versions of the 
> same service by chaging its location and wsdl namespace. The services 
> repository has not been designed to accomadate multiple versions of the same 
> service (you can have only one service repository).
> It can probably be done providing support for deploying multiple versions of 
> the same service similar to the mechansim provided for deploying multiple 
> versions of the same "module".
> Gul

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to