The WSO2 SOA Platform has the built-in capability to host legacy Axis1 services with Axis2. This simplifies migrating the Axis1 services to the power and flexibility of Axis2. You do not need to change any of your existing source code to achieve this. You can simply upload your Axis1 services using this tool, and it will be deployed as an Axis2 service.
To use your Axis1 service with Axis2, you need to have all the service and data classes referenced by your WSDD file (server-config.wsdd) available to the Axis1 service deployer. To do this, you must upload the appropriate classes packaged as a .jar file, along with the WSDD file for the service.
Figure 1: Uploading Axis1 Service
Once your WSDD file is deployed, all the Axis1 services inside it will automatically be available as Axis2 services, all in a single Service Group.
Note: In addition to uploading Axis1 services using this user interface, you can also manually place the .jar files containing your classes into CARBON_HOME/repository/services/axis1services/lib. They will then be accessible to the Axis2 engine to be deployed as services.
When you look at the Axis1 services that you deployed using this tool, you will notice that some of those services have only one operation named invokeAxis1Service on the Service Dashboard. You might have expected to see the set of original operations that you had in your Axis1 service. The reason for this is because that those Axis1 services are RPC/encoded style services, and Axis2 does not natively support RPC/encoded services.
The single operation named invokeAxis1Service that you see is a proxy pass-through operation, which hands all incoming messages to your Axis1 service. Your service will function perfectly normally, and you will be able to invoke all the operations that were present in the original Axis1 service.
Note: You will not be able to engage Axis2 modules on per-operation basis for these types of services. You will only be able to engage modules at global and service levels.