users@jax-rpc.java.net

Re: Problem sending large String

From: Sharmin Choksey <Sharmin.Choksey_at_sun.com>
Date: Wed, 05 Feb 2003 16:30:19 -0800

Kenneth,

Just curious, which JDK is JAX-RPC running on ?

-Sharmin.

Baltz, Kenneth wrote:
> I ran into serialization issues today caused by passing a large String
> (>100,000 bytes). Changing the interface to take a byte[] instead of a
> String fixed the problem. In other words, passing a 100KB byte[]
> worked, but a 100KB String caused Deserialization errors with a root
> cause of ArrayIndexOutOfBounds. The String contained XML data including
> some <![CDATA[ ]]> sections, but I haven't had trouble passing that
> before.
>
> Here's the related trace.
>
> XML parsing error: com.sun.xml.rpc.sp.ParseException:391:
> java.lang.ArrayIndexOutOfBoundsException
> at com.sun.xml.rpc.streaming.XMLReaderImpl.next(XMLReaderImpl.java:110)
> at
> com.sun.xml.rpc.encoding.SimpleTypeSerializer.deserialize(SimpleTypeSerializer.java:108)
>
> at
> com.sun.xml.rpc.encoding.AttachmentSerializer.deserialize(AttachmentSerializer.java:138)
>
> at
> com.sun.xml.rpc.encoding.ReferenceableSerializerImpl.deserialize(ReferenceableSerializerImpl.java:115)
>
> at
> com.firstam.Profiler.CpwsIF_SaveLookupTables_RequestStruct__cpws__SOAPSerializer.doDeserialize(CpwsIF_SaveLookupTables_RequestSt
>
> at
> com.sun.xml.rpc.encoding.ObjectSerializerBase.deserialize(ObjectSerializerBase.java:165)
>
> at
> com.sun.xml.rpc.encoding.ReferenceableSerializerImpl.deserialize(ReferenceableSerializerImpl.java:115)
>
> at
> com.firstam.Profiler.CpwsIF_Tie.deserialize_saveLookupTables(CpwsIF_Tie.java:4622)
>
> at
> com.firstam.Profiler.CpwsIF_Tie.readFirstBodyElement(CpwsIF_Tie.java:3729)
> at
> com.sun.xml.rpc.server.StreamingHandler.handle(StreamingHandler.java:164)
> at
> com.sun.xml.rpc.server.http.JAXRPCServletDelegate.doPost(JAXRPCServletDelegate.java:280)
>
> at
> com.sun.xml.rpc.server.http.JAXRPCServlet.doPost(JAXRPCServlet.java:69)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
>
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
>
> at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:260)
>
> at
> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:646)
>
> at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:483)
> at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
> at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
>
> at
> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:646)
>
> at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:483)
> at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
> at
> org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2349)
> at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
>
> at
> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:646)
>
> at
> org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
>
> at
> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:644)
>
> at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:171)
>
> at
> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:644)
>
> at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:483)
> at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
> at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
>
> at
> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:646)
>
> at
> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:469)
> at
> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:644)
>
> at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:483)
> at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
> at
> org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)
> at
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:405)
> at
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:376)
>
> at
> org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:508)
> at
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:518)
>
> at java.lang.Thread.run(Thread.java:536)
>
>
> K.C.
>