An introduction to using Axis.
What is Axis?
Axis is essentially a SOAP engine — a framework for constructing SOAP processors such as clients, servers, gateways, etc. The current version of Axis is written in Java. But Axis isn’t just a SOAP engine — it also includes:
- a simple stand-alone server,
- a server which plugs into servlet engines such as Tomcat,
- extensive support for the Web Service Description Language (WSDL),
- emitter tooling that generates Java classes from WSDL.
- some sample programs, and
- a tool for monitoring TCP/IP packets.
Pre-Requisites
- Java 1.4 or better
- Apache Tomcat 5.0 or better
Installation
su - cd /opt wget http://apache.ausgamers.com/ws/axis/1_4/axis-bin-1_4.tar.gz tar xvfz axis-bin-1_4.tar.gz ln -s axis-1_4/ axis echo "AXIS_HOME=/opt/axis;export AXIS_HOME" > /etc/profile.d/axis.sh . /etc/profile.d/axis.sh cp -r $AXIS_HOME/webapps/axis $CATALINA_HOME/webapps catalina.sh stop catalina.sh start
At this time, you should be able to confirm this installation was initially successful by going to http://localhost:8080/axis/
Installed Axis Options
The default Axis page, gives you a number of options. To confirm the installation, select the Validate Axis Link http://localhost:8080/axis/happyaxis.jsp. If there is anything missing this page will report it. In my case I was missing XML Security, which is optional.
cd /tmp wget http://xml.apache.org/security/dist/java-library/xml-security-bin-1_3_0.zip unzip xml-security-bin-1_3_0.zip cp xml-security-1_3_0/libs/xmlsec-1.3.0.jar /opt/tomcat/common/lib catalina.sh stop catalina.sh start
One of the links from the default home page are http://localhost:8080/axis/servlet/AxisServlet which Lists services.
First Use
One of the nicest parts of AXIS is its “instant Web service” feature called Java Web Service (JWS) — just take a Java file, rename it, and drop it into TOMCAT_HOME/webapps/axis to make all of the (public) methods in the class callable through Web services.
Quote.java
import java.util.HashMap; import java.util.Map; public class Quote { private HashMap quotes = null; public Quote() { quotes = new HashMap(); quotes.put("Groucho Marx", "Time flies like an arrow. Fruit flies like a banana."); quotes.put("Mae West", "When women go wrong, men go right after them."); quotes.put("Mark Twain", "Go to Heaven for the climate, Hell for the company."); quotes.put("Thomas Edison", "Genius is 1% inspiration, 99% perspiration."); } public String quote(String name) { String quote; if (name == null || name.length() == 0 || (quote = (String) quotes.get(name)) == null) { quote = "No quotes."; } return (quote); } public int count() { return quotes.size(); } }
cp Quote.java /opt/tomcat/webapps/axis/Quote.jws
http://localhost:8080/axis/Quote.jws
http://localhost:8080/axis/Quote.jws?wsdl
More details can be found at Getting Started using Web Services with Tomcat and Axis.
What’s Next
In my next Tutorial, I’ll be moving to the practical use of Web Services using WSDL.