My Axis 1.3 server operations throw MyException which is defined something
like this (though in reality it's more complex):
public class MyException extends AxisFault implements Serializable
{
private String mytext;
public String getMytext() {return mytext;}
public void setMytext(String mytext) {this.mytext = mytext;}
// the normal wsdl2java generated stuff such
// as constructor, getSerializer(), getDeserializer()
}
I see this serialized on the line as:
<soapenv:Fault xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<faultcode>soapenv:Server.userException</faultcode>
<faultstring>mypackage.MyException</faultstring>
<detail>
<faultData>
<mytext>testing exceptions</mytext>
</faultData>
<ns1:stackTrace
... stack trace here ...
</ns1:stackTrace>
<ns2:hostname
xmlns:ns2="http://xml.apache.org/axis/">myhostname</ns2:hostname>
</detail>
</soapenv:Fault>
I'm not an expert here, obviously, but I'm pretty sure that this
serialization is wrong. In particular:
1. the fault string is the name of the exception class, which is odd
2. it refers to <faultData> when I'd expect to see <ns1:MyException> or
similar
3. it should not contain a server-side stack trace
As it stands, a client that attempts to deserialize this has no clue what
type the contained exception is and thus fails.
My cubicle wall now has a large hole from me banging my head into it on a
regular basis ;-) so could someone please offer a clue as to what could be
going wrong. What could cause Axis to serialize my exception in this way?
Thanks.
_________________________________________________________________
On the road to retirement? Check out MSN Life Events for advice on how to
get there! http://lifeevents.msn.com/category.aspx?cid=Retirement