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

Reply via email to