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