You are viewing a plain text version of this content. The canonical link for it is here.
Posted to soap-dev@xml.apache.org by Mike Spreitzer <ms...@us.ibm.com> on 2001/04/11 06:51:23 UTC

SOAP 2.1 does not correctly transmit a string containing "
I tried to use Apache SOAP 2.1 to transport a Bean containing a String 
containing "<![CDATA[" (i.e., the start tag for an XML CDATA section) --- 
with no complementary close tag.  That should work, because I'm 
transmitting a java.lang.String, which need not contain a well-formed XML 
document.  But it doesn't work.  Here's an excerpt captured with 
TcpTunnelGui:

<id xsi:type="xsd:string">qqq<![CDATA[zzz</id>

That was sent in a call message (from client to server).  Here's the crash 
output from the server:

org.xml.sax.SAXParseException: The CDATA section must end with "]]>".
        at 
org.apache.xerces.framework.XMLParser.reportError(XMLParser.java:1016)
        at 
org.apache.xerces.framework.XMLDocumentScanner.reportFatalXMLError(XMLDocumentScanner.java:625)
        at 
org.apache.xerces.framework.XMLDocumentScanner$ContentDispatcher.endOfInput(XMLDocumentScanner.java:1395)
        at 
org.apache.xerces.framework.XMLDocumentScanner.endOfInput(XMLDocumentScanner.java:417)
        at 
org.apache.xerces.validators.common.XMLValidator.sendEndOfInputNotifications(XMLValidator.java:570)
        at 
org.apache.xerces.readers.DefaultEntityHandler.changeReaders(DefaultEntityHandler.java:1026)
        at 
org.apache.xerces.readers.XMLEntityReader.changeReaders(XMLEntityReader.java:168)
        at 
org.apache.xerces.readers.AbstractCharReader.changeReaders(AbstractCharReader.java:150)
        at 
org.apache.xerces.readers.AbstractCharReader.scanContent(AbstractCharReader.java:1097)
        at 
org.apache.xerces.framework.XMLDocumentScanner$ContentDispatcher.dispatch(XMLDocumentScanner.java:1145)
        at 
org.apache.xerces.framework.XMLDocumentScanner.parseSome(XMLDocumentScanner.java:380)
        at org.apache.xerces.framework.XMLParser.parse(XMLParser.java:908)
        at 
org.apache.soap.util.xml.XercesParserLiaison.read(XercesParserLiaison.java:85)
        at 
org.apache.soap.transport.TransportMessage.unmarshall(TransportMessage.java:267)
        at 
org.apache.soap.server.ServerUtils.readEnvelopeFromInputStream(ServerUtils.java:118)
        at 
org.apache.soap.server.http.ServerHTTPUtils.readEnvelopeFromRequest(ServerHTTPUtils.java:150)
        at 
org.apache.soap.server.http.PubRPCRouterServlet.doPost(PubRPCRouterServlet.java:220)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
        at 
org.apache.tomcat.core.ServletWrapper.doService(ServletWrapper.java:405)
        at org.apache.tomcat.core.Handler.service(Handler.java:287)
        at 
org.apache.tomcat.core.ServletWrapper.service(ServletWrapper.java:372)
        at 
org.apache.tomcat.core.ContextManager.internalService(ContextManager.java:797)
        at 
org.apache.tomcat.core.ContextManager.service(ContextManager.java:743)
        at 
org.apache.tomcat.service.http.HttpConnectionHandler.processConnection(HttpConnectionHandler.java:213)
        at 
org.apache.tomcat.service.TcpWorkerThread.runIt(PoolTcpEndpoint.java:416)
        at 
org.apache.tomcat.util.ThreadPool$ControlRunnable.run(ThreadPool.java:498)
        at java.lang.Thread.run(Thread.java:498)