users@jersey.java.net

Re: [Jersey] Re: Multipart and OSGi

From: Ángel Eduardo <egarcia_at_swissms.ch>
Date: Fri, 03 Sep 2010 16:31:30 +0200

  This is the result. It seems indeed some problem with media type, but
later it seems to found my classes and path, so no clue here...

INFO: 1 * Server in-bound request
1 > POST http://test.com/filterSupport/cell
1 > host: test.com
1 > x-real-ip: 127.0.0.1
1 > x-forwarded-for: 127.0.0.1
1 > connection: close
1 > referer: https://test.com/list/cells
1 > content-length: 469
1 > cache-control: max-age=0
1 > origin: https://test.com
1 > content-type: multipart/form-data;
boundary=----WebKitFormBoundaryMbWFHE6Ulo5PCN5r
1 > accept:
application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
1 > user-agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_3; en-US)
AppleWebKit/534.7 (KHTML, like Gecko) Chrome/7.0.512.0 Safari/534.7
1 > accept-encoding: gzip,deflate,sdch
1 > accept-language: en-US,en;q=0.8
1 > accept-charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
1 > cookie: PHPSESSID=njr5agujma3ohh1uqmpu1uf9v1
1 >
------WebKitFormBoundaryMbWFHE6Ulo5PCN5r
Content-Disposition: form-data; name="auth"
pass::pass
------WebKitFormBoundaryMbWFHE6Ulo5PCN5r
Content-Disposition: form-data; name="data"; filename="lalala"
Content-Type:
123321,data,data
------WebKitFormBoundaryMbWFHE6Ulo5PCN5r--

INFO: Mapped exception to response: 400 (Bad Request)
javax.ws.rs.WebApplicationException: java.lang.IllegalArgumentException:
Error parsing media type ''
         at
com.sun.jersey.multipart.impl.MultiPartReaderClientSide.readMultiPart(MultiPartReaderClientSide.java:200)
         at
com.sun.jersey.multipart.impl.MultiPartReaderServerSide.readMultiPart(MultiPartReaderServerSide.java:80)
         at
com.sun.jersey.multipart.impl.MultiPartReaderClientSide.readFrom(MultiPartReaderClientSide.java:139)
         at
com.sun.jersey.multipart.impl.MultiPartReaderClientSide.readFrom(MultiPartReaderClientSide.java:77)
         at
com.sun.jersey.spi.container.ContainerRequest.getEntity(ContainerRequest.java:454)
         at
com.sun.jersey.spi.container.ContainerRequest.getEntity(ContainerRequest.java:463)
         at
com.sun.jersey.multipart.impl.FormDataMultiPartDispatchProvider$FormDataInjectableValuesProvider.getInjectableValues(FormDataMultiPartDispatchProvider.java:115)
         at
com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$EntityParamInInvoker.getParams(AbstractResourceMethodDispatchProvider.java:138)
         at
com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$ResponseOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:185)
         at
com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:70)
         at
com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:279)
         at
com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:136)
         at
com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:86)
         at
com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:136)
         at
com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:74)
         at
com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1358)
         at
com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1290)
         at
com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1240)
         at
com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1230)
         at
com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:419)
         at
com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:497)
         at
com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:684)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
         at
org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1523)
         at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:279)
         at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:188)
         at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:641)
         at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:97)
         at
com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:85)
         at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:185)
         at
org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:325)
         at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:226)
         at
com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:165)
         at
com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:791)
         at
com.sun.grizzly.comet.CometEngine.executeServlet(CometEngine.java:473)
         at com.sun.grizzly.comet.CometEngine.handle(CometEngine.java:341)
         at
com.sun.grizzly.comet.CometAsyncFilter.doFilter(CometAsyncFilter.java:84)
         at
com.sun.grizzly.arp.DefaultAsyncExecutor.invokeFilters(DefaultAsyncExecutor.java:161)
         at
com.sun.grizzly.arp.DefaultAsyncExecutor.interrupt(DefaultAsyncExecutor.java:137)
         at
com.sun.grizzly.arp.AsyncProcessorTask.doTask(AsyncProcessorTask.java:88)
         at com.sun.grizzly.http.TaskBase.run(TaskBase.java:189)
         at
com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:330)
         at
com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:309)
         at java.lang.Thread.run(Thread.java:637)
Caused by: java.lang.IllegalArgumentException: Error parsing media type ''
         at
com.sun.jersey.core.impl.provider.header.MediaTypeProvider.fromString(MediaTypeProvider.java:80)
         at
com.sun.jersey.core.impl.provider.header.MediaTypeProvider.fromString(MediaTypeProvider.java:53)
         at javax.ws.rs.core.MediaType.valueOf(MediaType.java:119)
         at
com.sun.jersey.multipart.impl.MultiPartReaderClientSide.readMultiPart(MultiPartReaderClientSide.java:196)
         ... 43 more
Caused by: java.text.ParseException: End of header
         at
com.sun.jersey.core.header.reader.HttpHeaderReaderImpl.getNextCharacter(HttpHeaderReaderImpl.java:219)
         at
com.sun.jersey.core.header.reader.HttpHeaderReaderImpl.next(HttpHeaderReaderImpl.java:184)
         at
com.sun.jersey.core.header.reader.HttpHeaderReader.nextToken(HttpHeaderReader.java:96)
         at
com.sun.jersey.core.impl.provider.header.MediaTypeProvider.valueOf(MediaTypeProvider.java:90)
         at
com.sun.jersey.core.impl.provider.header.MediaTypeProvider.fromString(MediaTypeProvider.java:78)
         ... 46 more

INFO: 1 * Server out-bound response
1 < 400
1 < X-Jersey-Trace-000: accept root resource classes: "/filterSupport/cell"
1 < X-Jersey-Trace-001: match path "/filterSupport/cell" ->
"/application\.wadl(/.*)?", "/filterSupport(/.*)?"
1 < X-Jersey-Trace-002: accept right hand path
java.util.regex.Matcher[pattern=/filterSupport(/.*)? region=0,19
lastmatch=/filterSupport/cell]: "/filterSupport/cell" ->
"/filterSupport" : "/cell"
1 < X-Jersey-Trace-003: accept resource: "filterSupport" ->
@Path("/filterSupport") test.FilterSupportPath_at_29d4e543
1 < X-Jersey-Trace-004: match path "/cell" -> "/cell(/)?", "/os(/)?", ""
1 < X-Jersey-Trace-005: accept right hand path
java.util.regex.Matcher[pattern=/cell(/)? region=0,5 lastmatch=/cell]:
"/cell" -> "/cell" : ""
1 < X-Jersey-Trace-006: accept sub-resource methods: "filterSupport" :
"/cell", POST -> test.FilterSupportPath_at_29d4e543
1 < X-Jersey-Trace-007: matched sub-resource method: @Path("/cell")
public javax.ws.rs.core.Response
test.FilterSupportPath.onCell(java.lang.String,java.io.InputStream)
1 < X-Jersey-Trace-008: matched message body reader: class
com.sun.jersey.multipart.FormDataMultiPart,
"multipart/form-data;boundary=----WebKitFormBoundaryMbWFHE6Ulo5PCN5r" ->
com.sun.jersey.multipart.impl.MultiPartReaderServerSide_at_6506fe2b
1 < X-Jersey-Trace-009: mapped exception to response:
javax.ws.rs.WebApplicationException_at_321baa4a -> 400
1 <


-- 
Ángel Eduardo
On 03/09/2010 15:18, Paul Sandoz wrote:
>
> On Sep 3, 2010, at 2:12 PM, Ángel Eduardo wrote:
>
>> Hi again.
>>
>> I'm trying with 1.4-SNAPSHOT version, but now the lines 
>> jersey-client-components and jersey-server-components doesn't appear 
>> in the log.
>
>
> Right i changed the multipart stuff so it no longer does that.
>
>
>> Also it seems that multipart is not working and server returns a 400 
>> (The request sent by the client was syntactically incorrect) when 
>> trying to access that test method I posted earlier.
>>
>
> I am guessing the Jersey multipart is kicking in otherwise you would 
> have got another error, so it could be related to the actual parsing 
> of the multipart/form-data message.
>
>
>> Any clues how to debug / fix this? (I know the OSGi guy is on 
>> vacation, but maybe someone have any idea)
>>
>
> Jakub is back, but busy today with some Oracle integration stuff 
> happening for Prague.
>
> Can you enable logging and tracing?
>
> <init-param>
> <param-name>com.sun.jersey.config.feature.Trace</param-name>
> <param-value>true</param-value>
> </init-param>
> <init-param>
> <param-name>com.sun.jersey.spi.container.ContainerRequestFilters</param-name>
> <param-value>com.sun.jersey.api.container.filter.LoggingFilter</param-value>
> </init-param>
> <init-param>
> <param-name>com.sun.jersey.spi.container.ContainerResponseFilters</param-name>
> <param-value>com.sun.jersey.api.container.filter.LoggingFilter</param-value>
> </init-param>
>
> I would like to know if there is something wrong with the 
> multipart/form-data.
>
> Best thing to do if possible is to send us a reproducible example.
>
> Paul.
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe_at_jersey.dev.java.net
> For additional commands, e-mail: users-help_at_jersey.dev.java.net
>