Every time I throw an application fault the error gets displayed in server side as an error.
To reproduce: run the faulthandling example from the distribution (xis2-1.4.1/samples/faulthandling) In the server side you get: ERROR] Account does not exist! org.apache.axis2.AxisFault: Account does not exist! at example.BankServiceMessageReceiverInOut.createAxisFault(BankServiceMessageReceiverInOut.java:237) at example.BankServiceMessageReceiverInOut.invokeBusinessLogic(BankServiceMessageReceiverInOut.java:75) at org.apache.axis2.receivers.AbstractInOutMessageReceiver.invokeBusinessLogic(AbstractInOutMessageReceiver.java:40) at org.apache.axis2.receivers.AbstractMessageReceiver.receive(AbstractMessageReceiver.java:100) at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:176) at org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:275) at org.apache.axis2.transport.http.HTTPWorker.service(HTTPWorker.java:278) at org.apache.axis2.transport.http.server.AxisHttpService.doService(AxisHttpService.java:281) at org.apache.axis2.transport.http.server.AxisHttpService.handleRequest(AxisHttpService.java:187) at org.apache.axis2.transport.http.server.HttpServiceProcessor.run(HttpServiceProcessor.java:82) at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1061) at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:575) at java.lang.Thread.run(Thread.java:613) I tracked the source of the error and it is in class AxisEngine line 212: catch (AxisFault e) { log.error(e.getMessage(), e); // <<<<< msgContext.setFailureReason(e); flowComplete(msgContext); throw e; } Now, the only way to deal with it now is to switch off logging which is never a good idea. This seems a pretty bad issue if you want to use faults. Comments? Especially from the axis committers. Dino