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