Hi Everyone, I just started working with xfire with webservices, and I read somewhere that I can throw my own exception on server side and catch it on client side. When I tried it, the exception was indeed caught on client side, but with no content (null content). All the steps are written below, Does anyone know what is the problem? Thanks Ora 1. server side - the addNotification method: Service declaration - @WebMethod(operationName = "addNotification") @WebResult(name = "addNotificationRes") public void addNotification(@WebParam(name = "ws_header", header = true, mode = WebParam.Mode.INOUT)Holder ws_header ,@WebParam(name = "source") String source ,@WebParam(name = "subject") String subject ,@WebParam(name = "message") String message ) throws WeatherException; //Inside the service we throw the exception - throw new WeatherException(new Throwable("my cause"), "my msg", new WeatherFaultDetail()); /*Note: the WeatherFaultDetail has a default Ctor which assigns values to the inner members, and therefore I expect them to arrive to client side.*/ 2. catch the exception successfully in the client side but THE CONTENT OF THE exception doesnt arrive (null): try { service.addNotification(ws_header, "src", "sub", "msg"); } catch (WeatherException e) { details = e.getFaultDetail(); } //DETAILS ARRIVES NULL 3. Here is the exception classes (it has all required setters and getters as far as I can see) import javax.xml.namespace.QName; import org.codehaus.xfire.fault.FaultInfoException; public class WeatherException extends FaultInfoException { private WeatherFaultDetail faultDetail; public WeatherException() { super(); } public WeatherException(Throwable cause, String message, WeatherFaultDetail detail) { super(message, cause); this.faultDetail = detail; } public WeatherFaultDetail getFaultInfo() { return faultDetail; } public void setFaultInfo(WeatherFaultDetail faultDetail) { this.faultDetail = faultDetail; } public static QName getFaultName() { return new QName("http://www.xxxx.com", "WeatherFault"); } public WeatherFaultDetail getFaultDetail() { return faultDetail; } public void setFaultDetail(WeatherFaultDetail faultDetail) { this.faultDetail = faultDetail; } }