What does: "Fault occurred while processing" in the client mean? and how do you reveal the real exception?

I have this CXF client which sometimes throws normal exceptions but some of the other times it throws me a "Fault occurred while processing", well, what does that mean?

When you get back a "Fault occurred while processing" it means that a web service threw an unchecked exception.  The CXF framework catches it and puts together a fault message which it sends back to the client.  The client’s stack trace at that point is pretty-much irrelevant.

There may be a way to get CXF to log the server stack trace, but I haven’t found it yet (feel free to comment on the post if you found one).  There may also be a way to stick a handler into the flow to get the exception before constructing the fault message, but I haven’t found that yet either (ditto).

If a checked-exception is thrown, then the exception – or at least its message – gets sent back to the client where it’s reconstructed and rethrown to be caught by the client.

Debugging a problem like this, once you can recreate it at will, is simple, as long as you can run the web service in a debugger, so that you can step through the web service and find where the unchecked exception (usually a NullPointerException) is thrown.  Alternatively, you can temporarily surround the code inside the WS with a try/catch and then print the stack when you catch the exception.


Popular posts from this blog

SCummVM for Android

MITM Attack or How to get Access to Your Neighbour's Gmail

Eclipse Window Builder VS Netbeans GUI Builder (Matisse)