Can u try to see the on the wire serialization is for test\wsdl\faults example? in a servlet environment? last i check that was fine. it starts from a wsdl.
You may need to switch off the hostname and stack trace stuff (see axis.development.system in http://ws.apache.org/axis/java/reference.html) for interop with other stacks. thanks, dims On 1/12/06, Jarmo Doc <[EMAIL PROTECTED]> wrote: > Apologies, I attached the wrong serialization -- that one was from an > exception that derived from Exception rather thanAxisFault (I've tried both > and neither works unless you happening to be talking to an Axis cleint). > > Here's the serialization (that's still wrong) derving from AxisFault: > > <soapenv:Fault xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> > <faultcode>soapenv:Server.generalException</faultcode> > <faultstring/> > <detail> > <ns1:fault xmlns:ns1="mypackage"> > <ns2:mytext xmlns:ns2="mypackage">testing exceptions</ns2:mytext> > </ns1:fault> > <ns4:exceptionName > xmlns:ns4="http://xml.apache.org/axis/">mypackage.MyException</ns4:exceptionName> > <ns5:stackTrace xmlns:ns5="http://xml.apache.org/axis/"> > ... stack trace here ... > </ns5:stackTrace> > <ns6:hostname > xmlns:ns6="http://xml.apache.org/axis/">myhostname</ns6:hostname> > </detail> > </soapenv:Fault> > > Aside from 'exceptionName' which I believe is an old hack to allow Axis > clients (and only Axis clients) to work out what type the exception is, this > fault does not indicate the type of the embedded exception. > > Should not: > > <ns1:fault xmlns:ns1="mypackage"> > > instead be something like this: > > <ns1:fault xmlns:ns1="mypackage" type="MyException"> > > How do I correct this behavior? > > >From: "Jarmo Doc" <[EMAIL PROTECTED]> > >Reply-To: [email protected] > >To: [email protected] > >Subject: Exceptions are killing me > >Date: Thu, 12 Jan 2006 11:16:15 -0800 > > > >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 > > -- Davanum Srinivas : http://wso2.com/blogs/
