I'm stuck in using SAAJ with Axis 1.1. When I try to add a child element to
the body, I get a ClassCastException. But when I add a soap fault and don't
add a child element, everything works fine.


Any suggestions?


import javax.xml.soap.MessageFactory;
import javax.xml.soap.SOAPBody;
import javax.xml.soap.SOAPEnvelope;
import javax.xml.soap.SOAPMessage;
import javax.xml.soap.SOAPPart;

try {
   MessageFactory mf = MessageFactory.newInstance();
   SOAPMessage message = mf.createMessage();
   System.out.println("Attachments: " + message.countAttachments());
   message.writeTo(System.out);
   SOAPPart part = message.getSOAPPart();
   SOAPEnvelope envelope = part.getEnvelope();
   SOAPBody body = envelope.getBody();
   body.addChildElement(envelope.createName("node")); // (*)
   //body.addFault(); // (**)
   message.writeTo(System.out);
} catch (Exception ex) {
   ex.printStackTrace();
}

----


Attachments: 0
<?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:Envelope>- java.io.IOException:
AxisFault
 faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
 faultSubcode:
 faultString: java.lang.ClassCastException:
org.apache.axis.message.MessageElement
 faultActor:
 faultNode:
 faultDetail:
 {http://xml.apache.org/axis/}stackTrace: java.lang.ClassCastException:
org.apache.axis.message.MessageElement
 at org.apache.axis.message.SOAPBody.outputImpl(SOAPBody.java:173)
 at org.apache.axis.message.SOAPEnvelope.outputImpl(SOAPEnvelope.java:509)
 at org.apache.axis.message.MessageElement.output(MessageElement.java:783)
 at org.apache.axis.SOAPPart.writeTo(SOAPPart.java:270)
 at org.apache.axis.Message.writeTo(Message.java:440)
 at com.rheinland.online.ws.TestAxis.main(TestAxis.java:34)


java.lang.ClassCastException: org.apache.axis.message.MessageElement
java.lang.ClassCastException: org.apache.axis.message.MessageElement
 at org.apache.axis.message.SOAPBody.outputImpl(SOAPBody.java:173)
 at org.apache.axis.message.SOAPEnvelope.outputImpl(SOAPEnvelope.java:509)
 at org.apache.axis.message.MessageElement.output(MessageElement.java:783)
 at org.apache.axis.SOAPPart.writeTo(SOAPPart.java:270)
 at org.apache.axis.Message.writeTo(Message.java:440)
 at com.rheinland.online.ws.TestAxis.main(TestAxis.java:34)

Reply via email to