java.rmi.RemoteException vs. javax.xml.rpc.soap.SOAPFaultException

From: Merten Schumann <>
Date: Fri, 9 Sep 2005 14:43:51 +0200


when on my JAX-RPC web service server side an IllegalArgumentException
(which is a RuntimeException) gets thrown, in different combinations of
server (Sun AS, Tomcat with Axis, WebSphere) and clients (Sun JAX-RPC or
Axis JAX-RPC) the exception seems to be rethrown by the client side
differently. I saw the IllegalArgumentException wrapped in a
RemoteException as well as in a SOAPFaultException.

My web service interface declares to throw RemoteException as required
by the spec. And so I do wrap custom exceptions in a RemoteException.
BTW: still I never saw the custom exception really wrapped in the
RemoteException at the client side, getCause() always returns null
there. :-(

My question is, what about RuntimeExceptions? In the J2EE/JAX-RPC spec,
is it well defined how RuntimeExceptions should be transferred and what
the client SOAP stack should rethrow?

Thanx a lot