blob: 121f72433048ffb3a5b6e68ac151fbba4359b6c5 [file] [log] [blame]
<!DOCTYPE html>
<!--
| Generated by Apache Maven Doxia at 2015-07-03
| Rendered using Apache Maven Fluido Skin 1.3.0
-->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="Date-Revision-yyyymmdd" content="20150703" />
<meta http-equiv="Content-Language" content="en" />
<title>Apache Axis &#x2013; Reading Guide</title>
<link rel="stylesheet" href="./css/apache-maven-fluido-1.3.0.min.css" />
<link rel="stylesheet" href="./css/site.css" />
<link rel="stylesheet" href="./css/print.css" media="print" />
<script type="text/javascript" src="./js/apache-maven-fluido-1.3.0.min.js"></script>
</head>
<body class="topBarDisabled">
<div class="container-fluid">
<div id="banner">
<div class="pull-left">
<div id="bannerLeft">
<h2>Axis</h2>
</div>
</div>
<div class="pull-right"> <a href="./" id="bannerRight">
<img src="images/axis-small.png" alt="Apache Axis"/>
</a>
</div>
<div class="clear"><hr/></div>
</div>
<div id="breadcrumbs">
<ul class="breadcrumb">
<li class="">
<a href="http://www.apache.org/" class="externalLink" title="Apache">
Apache</a>
</li>
<li class="divider ">/</li>
<li class="">
<a href="../../" title="Axis">
Axis</a>
</li>
<li class="divider ">/</li>
<li class="">
<a href="../" title="Axis 1.x">
Axis 1.x</a>
</li>
<li class="divider ">/</li>
<li class="">
<a href="./" title="Java">
Java</a>
</li>
<li class="divider ">/</li>
<li class="">Reading Guide</li>
<li id="publishDate" class="pull-right">Last Published: 2015-07-03</li> <li class="divider pull-right">|</li>
<li id="projectVersion" class="pull-right">Version: 1.4.1-SNAPSHOT</li>
</ul>
</div>
<div class="row-fluid">
<div id="leftColumn" class="span3">
<div class="well sidebar-nav">
<ul class="nav nav-list">
<li class="nav-header">About</li>
<li>
<a href="index.html" title="Introduction">
<i class="none"></i>
Introduction</a>
</li>
<li>
<a href="issue-tracking.html" title="Issue Tracking">
<i class="none"></i>
Issue Tracking</a>
</li>
<li>
<a href="mail-lists.html" title="Mailing Lists">
<i class="none"></i>
Mailing Lists</a>
</li>
<li>
<a href="source-repository.html" title="Source Repository">
<i class="none"></i>
Source Repository</a>
</li>
<li>
<a href="artifacts.html" title="Artifacts & Dependencies">
<i class="none"></i>
Artifacts & Dependencies</a>
</li>
<li>
<a href="apiDocs/index.html" title="Javadocs">
<i class="none"></i>
Javadocs</a>
</li>
<li class="nav-header">Downloads</li>
<li>
<a href="releases.html" title="Releases">
<i class="none"></i>
Releases</a>
</li>
<li>
<a href="changelog.html" title="Changelogs">
<i class="icon-chevron-right"></i>
Changelogs</a>
</li>
<li>
<a href="snapshots.html" title="Snapshots">
<i class="none"></i>
Snapshots</a>
</li>
<li class="nav-header">Documentation</li>
<li>
<a href="overview.html" title="Overview">
<i class="none"></i>
Overview</a>
</li>
<li>
<a href="install.html" title="Installation">
<i class="none"></i>
Installation</a>
</li>
<li>
<a href="user-guide.html" title="User's Guide">
<i class="none"></i>
User's Guide</a>
</li>
<li>
<a href="developers-guide.html" title="Developer's Guide">
<i class="none"></i>
Developer's Guide</a>
</li>
<li>
<a href="integration-guide.html" title="Integration Guide">
<i class="none"></i>
Integration Guide</a>
</li>
<li>
<a href="architecture-guide.html" title="Architecture Guide">
<i class="none"></i>
Architecture Guide</a>
</li>
<li>
<a href="reference.html" title="Reference Guide">
<i class="none"></i>
Reference Guide</a>
</li>
<li class="active">
<a href="#"><i class="none"></i>Reading Guide</a>
</li>
<li class="nav-header">More...</li>
<li>
<a href="ant/ant.html" title="Ant Tasks">
<i class="none"></i>
Ant Tasks</a>
</li>
<li>
<a href="maven/index.html" title="Maven Plugins">
<i class="none"></i>
Maven Plugins</a>
</li>
<li>
<a href="castor/index.html" title="Castor Databinding">
<i class="none"></i>
Castor Databinding</a>
</li>
<li>
<a href="xmlbeans/index.html" title="XmlBeans Databinding">
<i class="none"></i>
XmlBeans Databinding</a>
</li>
<li>
<a href="transports/jms/index.html" title="JMS Transport">
<i class="none"></i>
JMS Transport</a>
</li>
<li>
<a href="transports/http-hc3/index.html" title="HttpClient 3 Transport">
<i class="none"></i>
HttpClient 3 Transport</a>
</li>
<li>
<a href="transports/http-javanet/index.html" title="java.net HTTP Transport">
<i class="none"></i>
java.net HTTP Transport</a>
</li>
<li>
<a href="standalone-server/index.html" title="Stand-alone Server">
<i class="none"></i>
Stand-alone Server</a>
</li>
<li class="nav-header">Apache</li>
<li>
<a href="http://www.apache.org/licenses/LICENSE-2.0.html" class="externalLink" title="License">
<i class="none"></i>
License</a>
</li>
<li>
<a href="http://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsorship">
<i class="none"></i>
Sponsorship</a>
</li>
<li>
<a href="http://www.apache.org/foundation/thanks.html" class="externalLink" title="Thanks">
<i class="none"></i>
Thanks</a>
</li>
<li>
<a href="http://www.apache.org/security/" class="externalLink" title="Security">
<i class="none"></i>
Security</a>
</li>
</ul>
<form id="search-form" action="http://www.google.com/search" method="get" >
<input value="ws.apache.org/axis/java" name="sitesearch" type="hidden"/>
<input class="search-query" name="q" id="query" type="text" />
</form>
<script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=search-form"></script>
<hr class="divider" />
<div id="poweredBy">
<div class="clear"></div>
<div class="clear"></div>
<div class="clear"></div>
<a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
<img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" />
</a>
</div>
</div>
</div>
<div id="bodyColumn" class="span9" >
<!-- ~ Licensed to the Apache Software Foundation (ASF) under one
~ or more contributor license agreements. See the NOTICE file
~ distributed with this work for additional information
~ regarding copyright ownership. The ASF licenses this file
~ to you under the Apache License, Version 2.0 (the
~ "License"); you may not use this file except in compliance
~ with the License. You may obtain a copy of the License at
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ Unless required by applicable law or agreed to in writing,
~ software distributed under the License is distributed on an
~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
~ KIND, either express or implied. See the License for the
~ specific language governing permissions and limitations
~ under the License. -->
<div class="section">
<h2><a name="Recommended_Reading"></a>Recommended Reading</h2>
<p>Here are things you can read to understand and use Axis better. Remember, you also have access to all the source if you really want to find out how things work (or why they don't).</p>
<div class="section">
<h3><a name="Table_of_Contents"></a>Table of Contents</h3>
<ul>
<li><a href="#Recommended_Reading">Recommended Reading</a>
<ul>
<li><a href="#Table_of_Contents">Table of Contents</a></li>
<li><a href="#Axis_installation_use_and_internals">Axis installation, use and internals</a></li>
<li><a href="#Specifications">Specifications</a></li>
<li><a href="#Explanations_articles_and_presentations">Explanations, articles and presentations</a></li>
<li><a href="#Interoperability">Interoperability</a></li>
<li><a href="#Advanced_topics">Advanced topics</a></li>
<li><a href="#Books">Books</a></li>
<li><a href="#External_Sites_covering_Web_Services">External Sites covering Web Services</a></li></ul></li></ul>
</div>
<div class="section">
<h3><a name="Axis_installation_use_and_internals"></a>Axis installation, use and internals</h3>
<ol style="list-style-type: decimal">
<li><a class="externalLink" href="http://www.tusc.com.au/tutorial/html/">Tutorial for building J2EE Applications using JBOSS and ECLIPSE</a><br />
A good tutorial on open source Enterprise Java Dev, whose chapter nine covers Axis.</li>
<li><a class="externalLink" href="http://www.pankaj-k.net/axis4tag/">Web Services with JAX-RPC and Apache Axis.</a><br />
by Pankaj Kumar. Starting with a 10000 ft. view of Web Services, prior technologies, current and emerging standards, it quickly gets into the nitty-gritties of using JAX-RPC and Apache Axis for writing and executing programs. Has a nice coverage of different invocation styles - generated stubs,
dynamic proxy and dynamic invocation interface. A good place to start if you are new to Web Services and Axis.<br /><br />
The author also maintains a <a class="externalLink" href="http://www.pankaj-k.net/webservices/index.html">Web Services Resource Page</a>.</li>
<li><a class="externalLink" href="http://www.sosnoski.com/presents/java-xml/axis/">Apache Axis SOAP for Java</a><br />
Dennis Sosnoski covers Axis. This is another good introductory guide.</li>
<li><a class="externalLink" href="http://www.sosnoski.com/presents/java-xml/axis/axis-monitor.html">Enabling SOAPMonitor in Axis 1.0</a>.<br />
Dennis Sosnoski on how to turn the SOAP monitor on and off, and use it to log your application.</li>
<li><a class="externalLink" href="http://macromedia.com/support/jrun/extend/using_web_services/">Axis in JRun</a><br />
Macromedia authored coverage of using Axis from inside JRun.</li>
<li><a class="externalLink" href="http://www-106.ibm.com/developerworks/webservices/library/ws-eight/">Ask the magic eight ball</a><br />
Example of using an Axis service with various caller platforms/languages.</li>
<li><a class="externalLink" href="http://www.fawcette.com/javapro/2003_02/online/WSDL_kjones_02_27_03/">Configure Axis Web Services</a><br />
Kevin Jones talks a bit about configuring axis, showing how to return handwritten WSDL from the ?wsdl query.</li>
<li><a class="externalLink" href="http://www.fawcette.com/javapro/2003_03/online/wsdl_kjones_03_10_03/">Different WSDL Styles in Axis</a><br />
Kevin Jones looks at the document and wrapped styles of WSDL2Java bindings.</li>
<li>
<a class="externalLink" href="http://www.j2ee-security.net/book/sample-chap/">Web Services Security with Axis</a><br />
This sample chapter from <a class="externalLink" href="http://www.j2ee-security.net/"><i>J2EE Security for Servlets,
EJBs and Web Services</i></a> book explains use of username/password based authentication,
SSL and Servlet security mechanisms for securing the transport and
WS-Security for securing the messages with Apache Axis. To illustrate use of handlers for
enforcing security, it describes the implementation of a bare-bones WS-Security mechanism
using <a class="externalLink" href="http://www.xmltrustcenter.org/developer/verisign/tsik/index.htm">
VeriSign's TSIK</a> and JAX-RPC handlers. You can also
<a class="externalLink" href="http://www.j2ee-security.net/book/viewsource.php">view</a> or
<a class="externalLink" href="http://www.j2ee-security.net/book/dnldsrc/">download</a> the complete sources
discussed in the chapter.
</li>
</ol>
</div>
<div class="section">
<h3><a name="Specifications"></a>Specifications</h3>
<ol style="list-style-type: decimal">
<li><a class="externalLink" href="http://www.w3.org/TR/soap/">SOAP Version 1.1</a><br />
Remember that SOAP1.1 is not an official W3C standard.</li>
<li><a class="externalLink" href="http://www.w3.org/TR/soap12-part0/">SOAP Version 1.2 Part 0: Primer</a><br />
This and the follow-on sections cover what the W3C think SOAP is and how it should be used.</li>
<li><a class="externalLink" href="http://www.w3.org/TR/wsdl">Web Services Description Language (WSDL) 1.1</a><br /></li>
<li><a class="externalLink" href="http://ietf.org/rfc/rfc2616.txt">RFC 2616: Hypertext Transfer Protocol -- HTTP/1.1</a><br />
This is HTTP. You really do need to understand the basics of how this works, to work out why your web service doesn't :)</li>
<li><a class="externalLink" href="http://java.sun.com/xml/saaj/index.html">SOAP with Attachments API for Java (SAAJ)</a><br />
SAAJ enables developers to produce and consume messages conforming to the SOAP 1.1 specification and SOAP with Attachments note.</li>
<li><a class="externalLink" href="http://java.sun.com/xml/jaxrpc/index.html">Java API for XML-Based RPC (JAX-RPC)</a><br />
The public API for Web Services in Java. JAX-RPC enables Java technology developers to develop SOAP based interoperable and portable web services. JAX-RPC provides the core API for developing and deploying web services on the Java platform.</li>
<li><a class="externalLink" href="http://www.w3.org/TR/xmlschema-0/">XML Schema Part 0: Primer</a><br />
The W3C XML Schema, (WXS) is one of the two sets of datatype SOAP supports, the other being the SOAP Section 5 datatypes that predate WXS. Complicated as it is, it is useful to have a vague understanding of this specification.</li>
<li><a class="externalLink" href="http://java.sun.com/xml/jaxm/index.html">Java API for XML Messaging (JAXM)</a><br />
JAXM enables applications to send and receive document oriented XML messages using a pure Java API. JAXM implements Simple Object Access Protocol (SOAP) 1.1 with Attachments messaging so that developers can focus on building, sending, receiving, and decomposing messages for their applications instead of programming low level XML communications routines.</li>
</ol>
</div>
<div class="section">
<h3><a name="Explanations_articles_and_presentations"></a>Explanations, articles and presentations</h3>
<ol style="list-style-type: decimal">
<li><a class="externalLink" href="http://www.intertwingly.net/stories/2002/03/16/aGentleIntroductionToSoap.html">A Gentle Introduction to SOAP</a><br />
Sam Ruby tries not to scare people.</li>
<li><a class="externalLink" href="http://www.intertwingly.net/stories/2002/02/15/aBusyDevelopersGuideToWsdl11.html">A Busy Developer's Guide to WSDL 1.1</a><br />
Quick intro to WSDL by the eponymous Sam Ruby.</li>
<li><a class="externalLink" href="http://www.ociweb.com/javasig/knowledgebase/2002Sep/">Axis - an open source web service toolkit for Java</a><br />
by Mark Volkmann, Partner, Object Computing, Inc. A very good introduction to SOAP and Axis. Highly Recommended.</li>
<li><a class="externalLink" href="http://www.iseran.com/Steve/papers/when_web_services_go_bad.html">When Web Services Go Bad</a><br />
Steve Loughran tries to scare people. A painful demonstration how deployment and system management are trouble spots in a production service, followed by an espousal of a deployment-centric development process. Remember, it doesn't have to be that bad.</li>
<li><a class="externalLink" href="http://servlet.java.sun.com/javaone/sf2002/conf/sessions/index.en.jsp">JavaOne 2002, Web Services Today and Tomorrow</a><br />
(Java Developer connection login required)</li>
<li><a class="externalLink" href="http://java.sun.com/webservices/docs/1.0/tutorial/doc/JAXRPC.html">The Java Web Services Tutorial: Java API for XML-based RPC</a><br />
This is part of Sun's guide to their Java Web Services Developer Pack. The examples are all based on their JWSDP, but as Axis also implements JAX-RPC, they may all port to Axis.</li>
<li><a class="externalLink" href="http://java.sun.com/blueprints/webservices/using/webservbp.html">Using Web Services Effectively.</a><br />
Blissfully ignoring issues such as versioning, robustness and security and all the other details a production Web Service needs, instead pushing EJB as the only way to process requests, this is Sun's guide to using web services in Java. It also assumes Java is at both ends, so manages to skirt round the interop problem.</li>
<li><a class="externalLink" href="http://www.hpl.hp.com/techreports/2002/HPL-2002-274.html">Making Web Services that Work</a><br />
A practical but suspiciously code free paper on how to get web services into production. As well as coverage of topics such as interop, versioning, security, this (57 page) paper looks at the deployment problem, advocating a fully automated deployment process in which configuration problems are treated as defects for which automated test cases and regresssion testing are appropriate. Happyaxis.jsp is the canonical example of this. The author, Steve Loughran also looks a bit at what the component model of a federated web service world would really be like.</li>
</ol>
</div>
<div class="section">
<h3><a name="Interoperability"></a>Interoperability</h3>
<ol style="list-style-type: decimal">
<li><a class="externalLink" href="http://www.intertwingly.net/stories/2002/02/01/toInfinityAndBeyondTheQuestForSoapInteroperability.html">To infinity and beyond - the quest for SOAP interoperability</a><br />
Sam Ruby explains why Interop matters so much.</li>
<li><a class="externalLink" href="http://www.iseran.com/Steve/papers/interop/">The Wondrous Curse of Interoperability</a><br />
Steve Loughran on interop challenges (especially between .NET and Axis), and how to test for them.</li>
</ol>
</div>
<div class="section">
<h3><a name="Advanced_topics"></a>Advanced topics</h3>
<ol style="list-style-type: decimal">
<li><a class="externalLink" href="http://www.extreme.indiana.edu/xgws/papers/sc00_paper/index.html">Requirements for and Evaluation of RMI Protocols for Scientific
Computing</a></li>
<li><a class="externalLink" href="http://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm">Architectural Styles and the Design of Network-based Software Architectures</a><br />
The theoretical basis of the REST architecture</li>
<li><a class="externalLink" href="http://www.extreme.indiana.edu/xgws/papers/soap-hpdc2002/soap-hpdc2002.pdf">Investigating the Limits of SOAP Performance for Scientific
Computing</a></li>
<li><a class="externalLink" href="http://www.w3.org/TR/webarch/">Architectural Principles of the World Wide Web</a><br />
The W3C architects say how things should be done.</li>
</ol>
</div>
<div class="section">
<h3><a name="Books"></a>Books</h3>
<ol style="list-style-type: decimal">
<li><i><a class="externalLink" href="http://www.wrox.com/books/1861007531.htm">Beginning Java Web Services</a></i><br />
Meeraj Kunnumpurath et al, Wrox Press, September 2002.<br />
An introductory book, with the early chapters focusing on Axis.<br />
The <a class="externalLink" href="http://www.wrox.com/books/sample-chapters/SampleChapter_1861007531.pdf">sample chapter</a> shows how to install Axis with Tomcat 4.0:
we do not believe that their approach is the best. It is easier to drop jaxrpc.jar and saaj.jar into the CATALINA_HOME/common/lib dir than it is to add all axis jars to the classpath by hand. The book is based on Axis Beta-3.</li>
<li><a class="externalLink" href="http://www.manning.com/hatcher"><i>Java development with Ant</i></a><br />
by Erik Hatcher and Steve Loughran, Manning Press, July 2002.<br />
A book on Ant development which covers Web Service development with Axis, along with other topics relevant to Java developers using Ant. The Web Service chapter, <a class="externalLink" href="http://www.manning-source.com/books/hatcher/hatcher_ch15.pdf">chapter 15</a>, is free to download, and was the birthplace of happyaxis.jar.<br />
The book is based on Axis Beta-2; the web site contains updated documentation where appropriate.</li>
<li><i><a class="externalLink" href="http://www.wrox.com/books/toc/1861007159_toc.htm">AXIS: Next Generation Java SOAP</a></i><br />
by Romin Irani and S Jeelani Bashna, Wrox Press, May 2002.<br />
The first nothing-but-Axis book.<br />
It is based on Beta-1. This is a reasonable book, despite is apparent thinness and relative age. If it has a major weakness it believes everything works as intended, which regular Axis users will know is not quite true yet. Maybe they didn't want to fault missing features and other gotchas, assuming they would be fixed by the time the product shipped, but the effective result is that you can get into minor trouble working from this book, trying to use bits that aren't there, or just don't work (yet).</li>
<li><i><a class="externalLink" href="http://samspublishing.com/title/0672326418">Building Web Services with Java: Making Sense of XML, SOAP, WSDL and UDDI</a></i><br />
Steve Graham et al, December 2001.<br />
Covering very early versions of Axis along with other aspects of Web Service technologies. One of the authors, Glen Daniels, is an Axis committer and active contributor, so the quality of the Axis coverage is high. Good explanations of SOAP, UDDI, and the like.</li>
<li>
<a class="externalLink" href="http://www.j2ee-security.net">
<i>J2EE Security for Servlets, EJBs and Web Services</i></a><br />
Pankaj Kumar, Prentice Hall, September 2003.<br />
A book on using Java security APIs, tools and mechanisms for building secure
enterprise applications. The chapter on <a href="#ws-sec">Web Services Security</a>
uses Axis-1.1RC1
for illustrations. Besides Web Services, it covers security aspects of Java RMI,
Servlet and JSP based Web Applications and EJBs.
</li>
</ol>
<p>Authors, publishers: we welcome additions to this section of any books which have some explicit coverage of Axis. Free paper/pdf copies and other forms of bribery accepted.</p>
</div>
<div class="section">
<h3><a name="External_Sites_covering_Web_Services"></a>External Sites covering Web Services</h3>
<ol style="list-style-type: decimal">
<li><a class="externalLink" href="http://www-106.ibm.com/developerworks/webservices/">IBM developerWorks Web Services corner</a><br />
There are lots of interesting articles on Web Services here, many of which are Axis related. There is also a <a class="externalLink" href="http://www-106.ibm.com/developerworks/webservices/library/ws-spec.html">listing of</a> &quot;all current open standards and specifications that define the Web services family of protocols&quot;, though Soap with Attachments is mysteriously absent.</li>
<li>
<a class="externalLink" href="http://msdn.microsoft.com/webservices/">MSDN Web
Services</a><br />
These are the microsoft pages; little Axis coverage but plenty on
Web Service specifications.
</li>
<li><a class="externalLink" href="http://webservices.xml.com/">WebServices.xml.com</a>
The O'Reilly site is always up to date, interesting and useful. It
doesn't advocate a single technology (REST, SOAP, RDF...), or a single
product. As such, it retains its independence and value.</li>
</ol>
</div>
</div>
</div>
</div>
</div>
<hr/>
<footer>
<div class="container-fluid">
<div class="row span12">Copyright &copy; 2000-2015
<a href="http://www.apache.org/">The Apache Software Foundation</a>.
All Rights Reserved.
</div>
</div>
</footer>
</body>
</html>