users@jersey.java.net

RESTful using jetty fails when called used "multi curl" from a PHP script

From: Subbu <subbu97_at_gmail.com>
Date: Thu, 5 Nov 2009 07:31:03 +0530

Hi,

We have an RESTful URI implemented in jetty. Now a consumer is trying to
access RESTful using from a PHP script.

Everything works fine when request are executed in sequence calls to RESTful
URI ( hosted on Apache (connected using jk_mod) + Tomcat + Jetty) request -
response working fine, Things start failing when we switch to multiple curl
calls.


Find stack trace

tContainerFilter - ServletContainerFilter:ServletException: doFilter:
ServletException in processing.
166098280 [TP-Processor1] ERROR
com.myschool.profile.restful.servlet.filter.ServletContainerFilter -
ServletContainerFilter:ServletException: doFilter: ServletException in
processing.
javax.servlet.ServletException:
com.sun.jersey.api.container.ContainerException: Exception injecting
parameters to Web resource method
        at
com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:346)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at
com.myschool.profile.restful.servlet.filter.ServletContainerFilter.doFilter(ServletContainerFilter.java:165)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
        at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
        at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
        at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
        at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
        at
org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:190)
        at
org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:291)
        at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:769)
        at
org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:698)
        at
org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:891)
        at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:690)
        at java.lang.Thread.run(Thread.java:619)
Caused by: com.sun.jersey.api.container.ContainerException: Exception
injecting parameters to Web resource method
        at
com.sun.jersey.impl.model.method.dispatch.EntityParamDispatchProvider$EntityParamInInvoker.getParams(EntityParamDispatchProvider.java:105)
        at
com.sun.jersey.impl.model.method.dispatch.EntityParamDispatchProvider$TypeOutInvoker._dispatch(EntityParamDispatchProvider.java:134)
        at
com.sun.jersey.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:85)
        at
com.sun.jersey.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:123)
        at
com.sun.jersey.impl.uri.rules.SubLocatorRule.accept(SubLocatorRule.java:88)
        at
com.sun.jersey.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:111)
        at
com.sun.jersey.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:71)
        at
com.sun.jersey.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:111)
        at
com.sun.jersey.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:63)
        at
com.sun.jersey.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:722)
        at
com.sun.jersey.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:692)
        at
com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:344)
        ... 19 more
Caused by: java.lang.IllegalArgumentException: java.io.IOException: Error
unmarshalling JAXB object of type "class
com.myschool.profile.restful.converter.RequestConverter".
        at
com.sun.jersey.spi.container.ContainerRequest.getEntity(ContainerRequest.java:350)
        at
com.sun.jersey.impl.model.method.dispatch.EntityParamDispatchProvider$EntityInjectable.getValue(EntityParamDispatchProvider.java:81)
        at
com.sun.jersey.impl.model.method.dispatch.EntityParamDispatchProvider$EntityParamInInvoker.getParams(EntityParamDispatchProvider.java:99)
        ... 30 more
Caused by: java.io.IOException: Error unmarshalling JAXB object of type
"class com.myschool.profile.restful.converter.RequestConverter".
        at
com.sun.jersey.impl.provider.entity.AbstractRootElementProvider.readFrom(AbstractRootElementProvider.java:91)
        at
com.sun.jersey.spi.container.ContainerRequest.getEntity(ContainerRequest.java:348)
        ... 32 more
Caused by: javax.xml.bind.UnmarshalException
 - with linked exception:
[java.net.SocketTimeoutException: Read timed out]
        at
com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:213)
        at
com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:184)
        at
javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:137)
        at
javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:184)
        at
com.sun.jersey.impl.provider.entity.XMLRootElementProvider.readFrom(XMLRootElementProvider.java:92)
        at
com.sun.jersey.impl.provider.entity.AbstractRootElementProvider.readFrom(AbstractRootElementProvider.java:89)
        ... 33 more
Caused by: java.net.SocketTimeoutException: Read timed out
        at java.net.SocketInputStream.socketRead0(Native Method)
        at java.net.SocketInputStream.read(SocketInputStream.java:129)
        at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
        at java.io.BufferedInputStream.read1(BufferedInputStream.java:258)
        at java.io.BufferedInputStream.read(BufferedInputStream.java:317)
        at org.apache.jk.common.ChannelSocket.read(ChannelSocket.java:621)
        at
org.apache.jk.common.ChannelSocket.receive(ChannelSocket.java:559)
        at
org.apache.jk.common.JkInputStream.receive(JkInputStream.java:200)
        at org.apache.jk.common.JkInputStream.doRead(JkInputStream.java:179)
        at org.apache.coyote.Request.doRead(Request.java:428)
        at
org.apache.catalina.connector.InputBuffer.realReadBytes(InputBuffer.java:304)
        at
org.apache.tomcat.util.buf.ByteChunk.substract(ByteChunk.java:372)
        at
org.apache.catalina.connector.InputBuffer.readByte(InputBuffer.java:317)
        at
org.apache.catalina.connector.CoyoteInputStream.read(CoyoteInputStream.java:105)
        at
org.apache.xerces.impl.XMLEntityManager$RewindableInputStream.read(Unknown
Source)
        at
org.apache.xerces.impl.XMLEntityManager.setupCurrentEntity(Unknown Source)
        at
org.apache.xerces.impl.XMLVersionDetector.determineDocVersion(Unknown
Source)
        at org.apache.xerces.parsers.XML11Configuration.parse(Unknown
Source)
        at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
        at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
        at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
        at
com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:211)
        ... 38 more


Thanks,
Subbu





-- 
Mike Ditka <http://www.brainyquote.com/quotes/authors/m/mike_ditka.html>  -
"If God had wanted man to play soccer, he wouldn't have given us arms."