What is JAX-RPC? What is JAXM? What is the difference between the two?

JAX/RPCTo aid developers in building XML-based requests such as SOAP requests, The JCP is developing the Java APIs for XML based RPC
(JAX/RPC). JAX/RPC is used for sending and receiving (including marshalling and unmarshalling) method calls using XML-based
protocols such as SOAP, or others such as XMLP (XML Protocol. For more information,
see http://www.w3.org/2000/xp/).
JAX/RPC isolates you from the specifics of these protocols, enabling rapid application development. There is no longer any need for
developers to interact directly with the XML representation of the call.
JAXM
When receiving a web service request from say a business partner, we need a Java API to process XML messages, in a similar way to how we processed SOAP requests using JAX/RPC. The Java API for XML Messaging (JAXM) is a forthcoming specification for interacting with XML messaging standards such as
ebXML messaging and SOAP messaging. This API is designed to facilitate the processing of XML message protocols, particularly
those where a predetermined contract exists (ebXML in particular) to determine the format and constraints of the message. This
API will handle all the envelope information, such as routing information and the cargo manifest, in an intuitive way separate
from the actual payload of the message. This allows developers to focus on interacting with the payload and not worry about the
other message administrivia.
Difference

The difference between JAXM and JAX/RPC is analogous to the difference between message-oriented middleware (MOM) and
remote procedure calls (RPCs). JAXM is geared toward message-oriented middleware-type applications, while JAX/RPC is designed
specifically for RPC behavior.