Rajesh discovers how to get good information out of a SOAP error: trust the Smalltalk Debugger:
It's enough to simply raise the exception in the method that implements the web service API. ActionWebService takes care of converting this exception into a SOAP fault message.
Five lines of code in the VisualWorks workspace was all it took:
wsdlClient := WsdlClient new loadFrom: 'http://localhost:3000/hello/service.wsdl' asURI. soapRequest := SoapRequest new. soapRequest port: wsdlClient config anyPort. soapRequest smalltalkEntity: (Message selector: #Hello ). soapResponse := soapRequest value.
Executing this snippet produced a Smalltalk exception; step into the debugger, inspect the transportEntity object, and see the SOAP fault message in all its glory.
Having a good debugger and a workspace is an amazing productivity boost.