Ok, I followed the docs to the letter and extended FaultInfoException instead of XFireFault. Still no luck. Then I took the BookService example and it worked as it should. I changed it to use the embedded server instead of the servlet and it still worked.

Then I added message logging to it, as described in [1] and now I saw the same error as in my application, only an XFireRuntimeException on the client. Turns out that adding a new DOMOutHandler as fault handler prevents proper exception handling.

The requirement to extend from FaultInfoException is a bit too strict for my taste. I am publishing the same services also via RMI remote objects and am pulling an XFire dependency in. Also, it prevents me from using any existing exception class hierarchy. Unless I can change its root to FaultInfoException. Why can't I just implement a tagging interface which serves as an indicator (and may even have a method "Object getFaultInfo()". Or it could have been an annotation. And there could be a default implementation of getFaultName (I tried to comment it out as the fallback code in DefaultServiceConfiguration seems to allow but that didn't work).

Also, what happens with any checked exception which has only the normal detailmessage (in Throwable)? Do I have to subclass every IllegalArgumentException etc. do add an empty getFaultInfo / standard getFaultName to it? Can't an exception serve as its own detail bean, provided it has getters/setters for the properties?

Regards
Werner

[1] http://xfire.codehaus.org/Logging

---------------------------------------------------------------------
To unsubscribe from this list please visit:

   http://xircles.codehaus.org/manage_email

Reply via email to