You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@axis.apache.org by ai...@gmx.de on 2005/09/21 13:15:16 UTC
[Axis2] Problems to use getText() of SOAPEnvelope
Hi,
I like to extract the 'text' from an instance of
org.apache.axis2.soap.SOAPEnvelope:
// create the parser
XMLStreamReader parser = XMLInputFactory.newInstance()
.createXMLStreamReader(new
FileReader(file));
// create the builder
OMXMLParserWrapper builder = OMXMLBuilderFactory
.createStAXSOAPModelBuilder(OMAbstractFactory
.getSOAP12Factory(),
parser);
// get the root element (in this case the envelope)
SOAPEnvelope envelope = (SOAPEnvelope) builder.getDocumentElement();
// get text
System.out.println(envelope.getText());
If I use envelope.getText() then I receive the exception listed below. But
when I use
XMLStreamWriter writer = XMLOutputFactory.newInstance()
.createXMLStreamWriter(System.out);
// dump the out put to console with caching
envelope.serialize(writer);
writer.flush();
everything works fine. Is it intended or what's wrong??
Thx,
Chris
Exception in thread "main" org.apache.axis2.om.OMException:
javax.xml.stream.XMLStreamException: ParseError at [row,col]:[20,20]
Message: already reached end document
at
org.apache.axis2.om.impl.llom.builder.StAXOMBuilder.next(StAXOMBuilder.java:
270)
at
org.apache.axis2.om.impl.llom.OMElementImpl.buildNext(OMElementImpl.java:467
)
at
org.apache.axis2.om.impl.llom.OMNodeImpl.getNextSibling(OMNodeImpl.java:121)
at
org.apache.axis2.om.impl.llom.OMElementImpl.getText(OMElementImpl.java:604)
at
de.iken.pure.test.env.server.ManagerTest.buildPackets(ManagerTest.java:79)
at
de.iken.pure.test.env.server.ManagerTest.testManager(ManagerTest.java:48)
at
de.iken.pure.test.env.server.ManagerTest.<init>(ManagerTest.java:41)
at
de.iken.pure.test.env.server.ManagerTest.main(ManagerTest.java:178)
Caused by: javax.xml.stream.XMLStreamException: ParseError at
[row,col]:[20,20]
Message: already reached end document
at com.bea.xml.stream.MXParser.parseEpilog(MXParser.java:1935)
at com.bea.xml.stream.MXParser.nextImpl(MXParser.java:1819)
at com.bea.xml.stream.MXParser.next(MXParser.java:1249)
at
org.apache.axis2.om.impl.llom.builder.StAXOMBuilder.next(StAXOMBuilder.java:
188)
... 7 more
Re: [Axis2] Problems to use getText() of SOAPEnvelope
Posted by Ajith Ranabahu <aj...@gmail.com>.
Well,
gettext() is an inherited method from the OMElement and it's purpose is to
expose the text nodes that are the immediate children of the relevant
OMElement. Serialize should produce the complete text form of the element.
However the gettext method should not produce the exception mentioned. It
should produce either a null or an empty string.
On 9/21/05, aii@gmx.de <ai...@gmx.de> wrote:
>
> Hi,
>
> I like to extract the 'text' from an instance of
> org.apache.axis2.soap.SOAPEnvelope:
>
>
> // create the parser
> XMLStreamReader parser = XMLInputFactory.newInstance()
> .createXMLStreamReader(new
> FileReader(file));
>
> // create the builder
> OMXMLParserWrapper builder = OMXMLBuilderFactory
>
> .createStAXSOAPModelBuilder(OMAbstractFactory
> .getSOAP12Factory(),
> parser);
>
> // get the root element (in this case the envelope)
> SOAPEnvelope envelope = (SOAPEnvelope) builder.getDocumentElement();
>
> // get text
> System.out.println(envelope.getText());
>
>
> If I use envelope.getText() then I receive the exception listed below. But
> when I use
>
> XMLStreamWriter writer = XMLOutputFactory.newInstance()
> .createXMLStreamWriter(System.out);
> // dump the out put to console with caching
> envelope.serialize(writer);
> writer.flush();
>
> everything works fine. Is it intended or what's wrong??
>
>
> Thx,
> Chris
>
>
>
> Exception in thread "main" org.apache.axis2.om.OMException:
> javax.xml.stream.XMLStreamException: ParseError at [row,col]:[20,20]
> Message: already reached end document
> at
> org.apache.axis2.om.impl.llom.builder.StAXOMBuilder.next(
> StAXOMBuilder.java:
> 270)
> at
> org.apache.axis2.om.impl.llom.OMElementImpl.buildNext(OMElementImpl.java
> :467
> )
> at
> org.apache.axis2.om.impl.llom.OMNodeImpl.getNextSibling(OMNodeImpl.java
> :121)
> at
> org.apache.axis2.om.impl.llom.OMElementImpl.getText(OMElementImpl.java
> :604)
> at
> de.iken.pure.test.env.server.ManagerTest.buildPackets(ManagerTest.java:79)
> at
> de.iken.pure.test.env.server.ManagerTest.testManager(ManagerTest.java:48)
> at
> de.iken.pure.test.env.server.ManagerTest.<init>(ManagerTest.java:41)
> at
> de.iken.pure.test.env.server.ManagerTest.main(ManagerTest.java:178)
> Caused by: javax.xml.stream.XMLStreamException: ParseError at
> [row,col]:[20,20]
> Message: already reached end document
> at com.bea.xml.stream.MXParser.parseEpilog(MXParser.java:1935)
> at com.bea.xml.stream.MXParser.nextImpl(MXParser.java:1819)
> at com.bea.xml.stream.MXParser.next(MXParser.java:1249)
> at
> org.apache.axis2.om.impl.llom.builder.StAXOMBuilder.next(
> StAXOMBuilder.java:
> 188)
> ... 7 more
>
>
--
Ajith Ranabahu