I ran into a problem with not being able to stop stack traces from being sent to the client even though "axis.development.system" was set to false in the wsdd. The beauty of open source is that I've been able to trace through the code and figure out what the problem was. The service that I'm developing has an onFault handler that had the following line of code:

SOAPFault fault = (SOAPFault)ctx.getResponseMessage().getSOAPEnvelope().getBody().getFault();

Before this call, the response message contained the fault that my service had thrown but after the call it contained a copy of the fault. Unfortunately, the code that removes the stack trace from the fault works on the original, not the copy, so the stack trace is still in the response when the response gets sent.

By changing the above to:

Object fault_obj = ((SOAPPart)ctx.getResponseMessage().getSOAPPart()).getCurrentMessage();

which does not change the response message. I now simply check whether fault_obj is an AxisFault or a SOAPFault and act accordingly.

Hope this helps others who have run into this problem.
Dan.

begin:vcard
fn:Dan Ciarniello
n:Ciarniello;Dan
org:CityXpress Corp
adr;dom:;;200 - 1727 West Broadway;Vancouver;BC;V6J 4W5
email;internet:[EMAIL PROTECTED]
title:Software Developer
tel;work:604-638-3800 ext. 322
x-mozilla-html:TRUE
url:http://www.cityxpress.com
version:2.1
end:vcard

Reply via email to