At the end you recommend AXIS over the Sun JWSDP but dont give any specific reasons.
Do you have any reasons? Thanks, Stuart.
Anne Thomas Manes wrote:
JAXM vs. SAAJ clarificationJAXM 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
