Java Industry News
Modernizing Axis1 Services Painlessly
Migrating with WSAS
May. 28, 2008 03:30 PM
If you’ve been working with Web Services for a long time,
chances are you’ve worked with Apache Axis and that you have an Axis Web
Service somewhere in your code base. You probably also know about the many
improvements in Axis2, especially around support for the more modern WS-*
standards. So maybe you’ve been planning on migrating these old Axis services,
but it can be hard to justify spending a lot of time on something that’s
working just fine. However, there’s a great new migration path available to
you: WSO2’s Web Services Application Server (WSAS.) With WSAS, you can take
your existing Axis Web Service, redeploy it to WSAS, and then with just a few
clicks enable things like WS-Security and WS-Reliable Messaging. There’s no
need to rewrite or regenerate any code.
Does this sound too good to be true? It’s not, just read on.
Prerequisites
In this article, you’ll work with WSO2 WSAS. You’ll
definitely want to download the latest version of WSAS. You can run it with any
Java Web container, such as Tomcat. Or you can run it in standalone mode. This
article assumes experience with Axis, and in particular with deploying an Axis
Web Service. It references a sample from Axis 1.4. Obviously a familiarity with
Web Services in general, and with some of the modern WS-* standards is very
useful.
Example of an Existing Axis Web Service
Let’s take a typical starting point for a lot of people. You
have a service you developed and used Axis to expose as a Web Service. There’s
a good chance that the service might not have been originally intended to be a
Web Service. Maybe it was just an internal service used by one application. You
then realized it would be valuable to other applications you were developing and
used Axis to do this. There are a couple of different ways to do this with
Axis, but the most powerful and flexible is to use Axis’s Web Service
Deployment Descriptor (WSDD.)
Let’s take a look at a sample WSDD. Axis ships several great
samples. We’ll use the bid-buy sample. It mimics an e-commerce system. It
exposes a Web Service for doing typical e-commerce tasks like requesting a
price quote and submitting purchase orders. Let’s take a look at its WSDD file
shown in Listing 1.
This is a fairly typical WSDD. It describes two services.
Each service has several operations that can be called. It also describes
mappings between the parameter types of the service to Java classes. To deploy
this you’d use Axis’s deployment tool, the AdminClient.
About Michael GalpinMichael Galpin is an architect at eBay, specializing in presentation technologies. He has been hacking on the web since the 90s, is a frequent writer for IBM developerWorks, and has a degree in mathematics from Caltech.