Speed
- Axis2 is based on StAX API(http://java.sun.com/webservices/docs/1.6/tutorial/doc/SJSXP3.html),
which gives greater speed than SAX event base parsing that has been used in
Axis1.2
Stability
- Axis2 has fixed phases and for extensions an area of user defined phases.
This allows far more stability and flexibility than Axis1.x.
Transport
framework - Simple abstraction designing of transports (i.e., senders and
listeners for SOAP over various protocols such as SMTP, etc), allow far more
flexibility and the core of the engine is completely transport-independent.
WSDL
Support - Axis2 supports version 1.1 and 2.0, which allow creating stubs and
skeletons, to manipulate web service arena.
Component
- Oriented Architecture - This is merely through archives (.mar and .aar) .
Easily reusable components such as Handlers, Modules allow patterns processing
for your applications, or to distribute to partners. Axis2 more concern on the
"Module" concept rather Handler concept. Modules contain handlers
that have been ordered through phase rules. which being ordered to specific
service(s).
The
Streaming API for XML (StAX) allows not only parsing of XML documents but also
writing XML documents to an output stream.
Until
recently, programmers had only two choices when creating XML documents
programmatically. Their first option was to directly write serialized XML
content to the output stream, and the second was to use DOM.
Both
options have severe drawbacks. In the first case, the programmer is fully
responsible for ensuring that the resulting document is well formed. The
programmer must take care of details such as matching start and end tags or the
escaping of special characters, such as the less than sign (<) and the ampersand
(&), in character content. This can make the implementation of programs
tedious and error prone. DOM, on the other hand, frees the programmer from this
burden but introduces considerable overhead: The complete document must first
be constructed as a node tree in memory before it can be serialized to an
output stream.
The
Streaming API for XML (StAX) completely changes this. Unlike the Simple API for
XML (SAX), StAX offers an API for writing XML documents. To be precise, it
offers two APIs: a low-level, cursor-based API (XMLStreamWriter), and a
higher-level, event-based API (XMLEventWriter). While the
cursor-based API is best used in data binding scenarios (for example, creating
a document from application data), the event-based API is typically used in
pipelining scenarios where a new document is constructed from the data of input
documents.
StAX
does not guarantee well-formed documents. It is still possible to produce a
document that violates the XML recommendation, such as a document with several
root elements or several XML prologues, or tag and attribute names containing
whitespace or characters not supported by XML. StAX implementations may check
these issues but they are not required to do so (the reference implementation
doesn't). Nevertheless, the StAX XMLStreamWriter is a big
improvement over outputting raw XML data, and it does this at a fraction of the
cost of using DOM.