I am trying to process a simple post request. Whenever I invoke the post, I
get a 'read timed out' error from Jersey. I've browsed the mailing list for
similar issues. One appeared related, but in my case, Tomcat has no valves
enabled. My rest method is:
@Consumes("application/x-www-form-urlencoded")
@POST @Path("/storeHoursProfile/add")
@Produces("text/html")
public String addProfile(@FormParam("groupId") Long groupId,
@FormParam("fromDate") String fromDateString, @FormParam("toDate") String
toDateString, @FormParam("fromTime") String fromTimeString,
@FormParam("toTime") String toTimeString)
{
String response = PlainTextResponseCode.OK;
....
return response;
}
The Jersey stack-trace:
java.net.SocketTimeoutException: Read timed out
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:129)
at
org.apache.coyote.http11.InternalInputBuffer.fill(InternalInputBuffer.java:746)
at
org.apache.coyote.http11.InternalInputBuffer$InputStreamInputBuffer.doRead(InternalInputBuffer.java:776)
at
org.apache.coyote.http11.filters.IdentityInputFilter.doRead(IdentityInputFilter.java:116)
at
org.apache.coyote.http11.InternalInputBuffer.doRead(InternalInputBuffer.java:705)
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:405)
at org.apache.catalina.connector.InputBuffer.read(InputBuffer.java:327)
at
org.apache.catalina.connector.CoyoteInputStream.read(CoyoteInputStream.java:193)
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 sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:264)
at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:306)
at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:158)
at java.io.InputStreamReader.read(InputStreamReader.java:167)
at java.io.Reader.read(Reader.java:123)
at
com.sun.jersey.core.provider.AbstractMessageReaderWriterProvider.readFromAsString(AbstractMessageReaderWriterProvider.java:89)
at
com.sun.jersey.core.impl.provider.entity.FormProvider.readFrom(FormProvider.java:76)
at
com.sun.jersey.core.impl.provider.entity.FormProvider.readFrom(FormProvider.java:63)
at
com.sun.jersey.spi.container.ContainerRequest.getEntity(ContainerRequest.java:391)
at
com.sun.jersey.spi.container.ContainerRequest.getEntity(ContainerRequest.java:400)
at
com.sun.jersey.server.impl.model.method.dispatch.FormDispatchProvider.processForm(FormDispatchProvider.java:76)
at
com.sun.jersey.server.impl.model.method.dispatch.FormDispatchProvider$FormParamInInvoker.getParams(FormDispatchProvider.java:91)
at
com.sun.jersey.server.impl.model.method.dispatch.FormDispatchProvider$TypeOutInvoker._dispatch(FormDispatchProvider.java:132)
at
com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:67)
Is there something I'm not understanding here? I should not that GET
requests are mapped to corresponding REST methods without a hitch.
I'm on Jersey 1.0.2 / Tomcat 6.0.18.
Thanks for any help.
Michael