Appendix A. Limitations of Apache Axis
In most ways, Apache Axis is a very successful open source project in Java. Axis 1.x is probably the most widely used Java-based SOAP toolkit that is not tied to any particular J2EE application server. Unfortunately, Axis 1.x suffers from limitations that make some of the example code in chapters 6, 7, and 8 fail. In this appendix, we will describe these limitations. We will also briefly describe a new generation of Axis, Axis2 and tell you what you can and cannot do with it right now.
Axis does not correctly bind data in a SOAP message to an object tree as defined by the W3C DOM API. This causes failures in other XML-processing libraries (such as XPath interpreters and XML encryption/signature libraries) that assume a W3C DOM-compliant object tree. We have reported two such issues as AXIS-2125 and AXIS-2163 in the Apache bug database for Axis 1.x. In the rest of this section, we will explain these issues in greater detail.
SAAJ provides a standard API for programmers to create, parse, and manipulate SOAP messages. You have seen the use of several classes defined by this API in the code examples discussed in chapters 2-8. The SOAPMessage, SOAPPart, SOAPEnvelope, and SOAPElement classes from the javax.xml.soap package are all defined by SAAJ. Axis 1.x supports SAAJ APIs alongside its own custom APIs for dealing with SOAP messages programmatically.