In this chapter, we will look at Java API for XML Messaging (JAXM). JAXM provides a standard extension API for apps to send and receive document-oriented XML messages synchronously and asynchronously, using SOAP. JAXM is a part of the JAX family of Java APIs and was started under the Java Community Process (JCP) in November 2001 as JSR-67. It is now a part of the JAX pack and the Java WSDP. JAXM has been designed to help architects create business apps that use XML messaging with SOAP and protocols built on SOAP. Developers can use JAXM to build, send, receive, and decompose SOAP messages for their apps instead of coding low-level XML routines that deal with "angle brackets" and messaging infrastructure.

Before we discuss JAXM in detail, we will discuss the role of message-oriented middleware (MOM), a concept central to messaging. We will then discuss provider-based messaging options in Java and how they can be used for SOAP messaging. We recommend reading before this, because this chapter contains frequent comparisons and references to content therein.