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.