I need to intercept web services client request (RAW HTTP), modify the SOAPAction header to "" and send the request to 5 web services endpoint on different servers, and return back the result only if both return HTTP 200.
and send the request to 5 web services endpoint on different servers
part of this question. But anyway...
Assuming you have a SOAP request incoming, you can read it all into a byte or String and grab the request headers. You could then make separate HttpURLConnections (in separate Threads presumably) creating NEW request headers using whatever values you want and send the message. Resolving the different responses from the different requests and hanlding errors sounds like quite a problem.