I have exactly the same issue - is there a known solution, other than
reverting to Java 1.5?
Cheers
Tracey
Arijit Mukherjee wrote:
>
> Hi All
>
> So long I was using Axis 1.2.1 and Java 1.5, and was able to
> successfully add my custom XML document within a SOAPMessage. I create
> the XML document using castor-generated java bindings and combining them
> into a DOM, and then using the following routine to get a SOAPElement
> from the DOM:
>
> public static SOAPElement
> convertDOMToSOAPElement(javax.xml.soap.SOAPEnvelope env, Node DOMNode)
> throws SOAPException {
>
> //Test that DOMNode is of type org.w3c.dom.Node.ELEMENT_NODE.
> if ((DOMNode.getNodeType()) != Node.ELEMENT_NODE)
> throw new SOAPException("DOMNode must of type
> ELEMENT_NODE");
>
> SOAPFactory elementFactory = SOAPFactory.newInstance();
> SOAPElement se =
> elementFactory.createElement(DOMNode.getLocalName());
> mLog.debug("element class: " + se.getClass().getName());
>
> if (DOMNode.hasAttributes()) {
> NamedNodeMap DOMAttributes = DOMNode.getAttributes();
> int noOfAttributes = DOMAttributes.getLength();
> for (int i = 0; i < noOfAttributes; i++) {
> org.w3c.dom.Node attr = DOMAttributes.item(i);
> se.addAttribute(env.createName(attr.getLocalName(),
> attr.getPrefix(),
> attr.getNamespaceURI()),
> attr.getNodeValue());
> }
> }
>
>
> if (DOMNode.hasChildNodes()) {
> NodeList children = DOMNode.getChildNodes();
> for (int i = 0; i < children.getLength(); i++) {
> Node child = children.item(i);
> switch (child.getNodeType()) {
> case org.w3c.dom.Node.PROCESSING_INSTRUCTION_NODE:
> break;
> case org.w3c.dom.Node.DOCUMENT_TYPE_NODE:
> break;
> case org.w3c.dom.Node.CDATA_SECTION_NODE:
> case org.w3c.dom.Node.COMMENT_NODE:
> case org.w3c.dom.Node.TEXT_NODE: {
> se.addTextNode(child.getNodeValue());
> break;
> }
> default:
> se.addChildElement(convertDOMToSOAPElement(env,
> child));
> }
> }//end of for
> }//end of if
>
> return se;
> }
>
> Once the SOAPElement is returned, I used to add it as a child element to
> my main SOAPBodyElement:
>
> SOAPEnvelope envelope = new SOAPEnvelope();
> //Create the root element
> Document outputDocument = XMLUtils.newDocument(new
> ByteArrayInputStream(impl.tm.getBytes()));
> System.out.println("Document Element: " +
> outputDocument.getDocumentElement().getNodeName());
> SOAPBody bdy = (SOAPBody) envelope.getBody();
> SOAPBodyElement csReq = (SOAPBodyElement)
> bdy.addBodyElement(envelope.createName(DynasoarConstants.DYNASOAR_SERVIC
> E_REQUEST));
> SOAPElement elem1 = convertDOMToSOAPElement(envelope,
> outputDocument.getDocumentElement());
> csReq.addChildElement(elem1);
>
> Recently I upgraded to Axis 1.4 and Java 1.6, and started getting a
> class cas exception about not being able to cast a
> com.sun.xml.internal.messaging.saaj.soap.impl.ElementImpl object to
> org.apache.axis.message.MessageElement at the
> csReq.addChildElement(elem1) statement. But ideally the object returned
> from the routing should be javax.xml.SOAPElement. I reverted back to
> Java 1.5, and the same code is back working.
>
> Are there any known issues with Axis 1.4 and Java 1.6?
>
> Thanx in advance
>
> Regards
> Arijit
>
> Microsoft is not the answer.
> Microsoft is the question.
> NO (or Linux) is the answer.
>
> -- source unknown
>
>
>
--
View this message in context:
http://www.nabble.com/Axis-1.4-and-Java-1.6---SOAPElement-problem-tp13749515p20455968.html
Sent from the Axis - User mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]