Looks like a bug, Please log a bug report http://nagoya.apache.org/bugzilla/
Thanks, dims --- John Smith <[EMAIL PROTECTED]> wrote: > > I want to create a custom SOAP Fault filling the FaultCode,FaultString and > detail myself. > But it seems the Axis SOAPFault implementation forces me to use the > AxisFault, to create SoapFault. > which is not a clean way of doing the creation. > > See the code snippet > > <Snippet> > public void testquick() throws Exception { > MessageFactory msgfactory = MessageFactory.newInstance(); > SOAPFactory factory = SOAPFactory.newInstance(); > > SOAPMessage outputmsg = msgfactory.createMessage(); > String valueCode = "faultcode"; > String valueString = "faultString"; > > SOAPFault fault = > outputmsg.getSOAPPart().getEnvelope().getBody().addFault(); > fault.setFaultCode(valueCode); > fault.setFaultString(valueString); > > > Detail d; > > d = fault.addDetail(); > > d.addDetailEntry(factory.createName("Hello")); > > if (outputmsg != null) { > if (outputmsg.saveRequired()) { > outputmsg.saveChanges(); > } > outputmsg.writeTo(System.out); > } > } > </Snippet> > > <output> > .<?xml version="1.0" encoding="UTF-8"?> > <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" > xmlns:xsd="http://www.w3.org/2001/XMLSchema" > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> > <soapenv:Body> > <soapenv:Fault> > <faultcode>soapenv:faultcode</faultcode> > <faultstring>faultString</faultstring> > <faultactor></faultactor> > <detail/> <-------------------------------Detail Missing. , added a > Hello element. > </soapenv:Fault> > </soapenv:Body> > </soapenv:Envelope> > </output> > > I think this is because of the serialization code, which only uses > AxisFault. > No reference to current detail > > <codesnippet> > public void outputImpl(SerializationContext context) > throws IOException > { > SOAPConstants soapConstants = context.getMessageContext() == null ? > SOAPConstants.SOAP11_CONSTANTS : > > context.getMessageContext().getSOAPConstants(); > > namespaceURI = soapConstants.getEnvelopeURI(); > name = Constants.ELEM_FAULT; > > context.registerPrefixForURI(prefix, > soapConstants.getEnvelopeURI()); > context.startElement(new QName(this.getNamespaceURI(), > this.getName()), > attributes); > > // XXX - Can fault be anything but an AxisFault here? > if (fault instanceof AxisFault) { > > </codesnippet> > > Is it a Bug and violation of SAAJ Spec. > > saurabh arora > > _________________________________________________________________ > It's magic. It's a whole new world. > http://server1.msn.co.in/sp03/hclbeanstalktour/amazing_winxp.html It's the > Windows XP experience. > ===== Davanum Srinivas - http://webservices.apache.org/~dims/ __________________________________ Do you Yahoo!? Yahoo! Calendar - Free online calendar with sync to Outlook(TM). http://calendar.yahoo.com