A major consequence is that once again, the JAX-RPC processing model has to be stretched to accomodate this new standard. To see why, let's consider what happens in a typical JAX-RPC service endpoint:
- An incoming request message is received via HTTP.
- One or more handlers (intermediaries) are allowed to pre-process the message (mainly its headers).
- The service implementation gets the message to do the real (business) part of the job and generates a reponse (if applicable).
- One or more handlers get to post-process the response.
- The HTTP conversation is terminated by sending an acknowledgement (with or without a response message).
This is almost inherently a synchronous request/reply paradigm, and things like returning a reply to a different address become very cumbersome: this has to be done in a handler that shortcuts the reponse chain and sends the SOAP message somewhere else instead…