|
JAXM 1.0 was the first Java API to support SOAP. It
originally contained two packages: javax.xml.soap and javax.xml.messaging. The
soap package is a low-level SOAP API. It provides access to the SOAP envelope
and supports basic SOAP communication. The messaging package is a higher level
messaging API that supports asynchronous SOAP communications. The messaging
package auto-generates a SOAP envelope (using the soap package) based on a
predefined "profile", such as an ebXML profile. (The ebXML profile supports
security and reliable message delivery -- but not all JAXM profiles necessarily
support these features.) The application then adds the XML payload to the
generated SOAP envelope. (The primary goal of this package is to support
ebXML.)
Then the JAX-RPC effort came along. JAX-RPC also
requires a low-level soap package, but it doesn't require a messaging package.
Rather than developing a new low-level soap package, and rather than forcing
JAX-RPC to pre-req all of JAXM, they decided to split JAXM into two separate
APIs: JAXM (messaging) and SAAJ (soap). So now JAXM and JAX-RPC both rely on
SAAJ.
JAX-RPC defines three interfaces: call, service,
and stub. The service and stub interfaces are RMI-like interfaces that support
synchronous, request/response invocations. The call interface is a dynamic
invocation interface (DII) that supports synchronous and asynchrous
messaging.
People that want to use ebXML should use JAXM.
People that want to use SOAP and WSDL should use JAX-RPC. Today, if you need
reliable message delivery, you can use JMS or SMTP. In the future you'll
probably use WS-ReliableMessaging over HTTP.
The JWSDP is more focused on the SOAP/WSDL market,
and most SOAP/WSDL users have no need for JAXM, so I assume that Sun thought it
better to supply the package separately.
But I recommend using Apache Axis over Sun's
JWSDP.
Anne
|
Title: JAXM vs. SAAJ clarification
- JAXM vs. SAAJ clarification Volkmann, Mark
- Re: JAXM vs. SAAJ clarification Anne Thomas Manes
- Re: JAXM vs. SAAJ clarification Stuart Barlow
