users@jersey.java.net

Problems handling multipart/form-data input

From: Marko Asplund <marko.asplund_at_gmail.com>
Date: Wed, 29 Sep 2010 10:45:53 +0300

Hi,

I'm having problems parsing multipart-form-data POST content with Jersey
1.4.
I've a method like this:

@POST
@Consumes(MediaType.MULTIPART_FORM_DATA)
public void addDocument(MultiPart mimeMultipartData) {
// ...
}

Is this a correct way to handle multipart form input?
The jersey-multipart-1.4.jar is included in classpath.

When I post a multipart-form-data request to the resource the following
error appears in the server log file:

Sep 29, 2010 9:56:39 AM com.sun.jersey.spi.container.ContainerRequest
getEntity
SEVERE: A message body reader for Java class
com.sun.jersey.multipart.MultiPart, and Java type class
com.sun.jersey.multipart.MultiPart, and MIME media type
multipart/form-data;boundary=t2I4QEHxIQQLQKuPcza112cIXke1KQ was not found
Sep 29, 2010 9:56:39 AM com.sun.jersey.spi.container.ContainerRequest
getEntity
SEVERE: The registered message body readers compatible with the MIME media
type are:
*/* ->
  com.sun.jersey.core.impl.provider.entity.FormProvider
  com.sun.jersey.core.impl.provider.entity.MimeMultipartProvider
  com.sun.jersey.core.impl.provider.entity.StringProvider
  com.sun.jersey.core.impl.provider.entity.ByteArrayProvider
  com.sun.jersey.core.impl.provider.entity.FileProvider
  com.sun.jersey.core.impl.provider.entity.InputStreamProvider
  com.sun.jersey.core.impl.provider.entity.DataSourceProvider
  com.sun.jersey.core.impl.provider.entity.XMLJAXBElementProvider$General
  com.sun.jersey.core.impl.provider.entity.ReaderProvider
  com.sun.jersey.core.impl.provider.entity.DocumentProvider
  com.sun.jersey.core.impl.provider.entity.SourceProvider$StreamSourceReader
  com.sun.jersey.core.impl.provider.entity.SourceProvider$SAXSourceReader
  com.sun.jersey.core.impl.provider.entity.SourceProvider$DOMSourceReader
  com.sun.jersey.json.impl.provider.entity.JSONJAXBElementProvider$General
  com.sun.jersey.json.impl.provider.entity.JSONArrayProvider$General
  com.sun.jersey.json.impl.provider.entity.JSONObjectProvider$General
  com.sun.jersey.core.impl.provider.entity.XMLRootElementProvider$General
  com.sun.jersey.core.impl.provider.entity.XMLListElementProvider$General
  com.sun.jersey.core.impl.provider.entity.XMLRootObjectProvider$General
  com.sun.jersey.core.impl.provider.entity.EntityHolderReader
  com.sun.jersey.json.impl.provider.entity.JSONRootElementProvider$General
  com.sun.jersey.json.impl.provider.entity.JSONListElementProvider$General
 com.sun.jersey.json.impl.provider.entity.JacksonProviderProxy


The client request is issued by Commons httpclient v3.1 and the server side
runs on Tomcat 6.


marko