Hi,
It looks like you use incorrect media type "application/octet-stream"
for your POSTed entity. Multipart reader
is bound to media type "miltipart/*", so for example it will be used for
"multipart/form-data". Try to change the "Content-Type" header of your
POST request to "multipart/form".
Mira
On 25.4.2013 4:09, Jeff Hagen wrote:
> Hello,
>
> I'm beating my head against the wall here so I figured that asking a question is probably a good idea.
>
> I'm having some difficulty getting my Jersey server to accept a POSTed multipart/mixed message.
>
> I am getting the following error (with redactions)
>
> "
> INFO: Root resource classes found:
> class xxx.xxx.xxx.xxx.xxx.myResource
> ...
>
> 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 application/octet-stream was not found.
> The registered message body readers compatible with the MIME media type are:
> application/octet-stream ->
> com.sun.jersey.core.impl.provider.entity.ByteArrayProvider
> com.sun.jersey.core.impl.provider.entity.FileProvider
> ..."
>
> Google tells me that this is resolved by adding a few dependencies.
>
> Here are the dependencies I already have as listed in my pom.xml
> <dependency>
> <groupId>com.sun.jersey.contribs</groupId>
> <artifactId>jersey-multipart</artifactId>
> <version>1.12</version>
> </dependency>
>
> <dependency>
> <groupId>org.jvnet</groupId>
> <artifactId>mimepull</artifactId>
> <version>1.6</version>
> </dependency>
>
> I checked to make sure that the classes are actually on the class path:
> $ ls target/dependencies/jersey-multipart*
> target/dependencies/jersey-multipart-1.12.jar
> $ ls target/dependencies/mimepull*
> target/dependencies/mimepull-1.6.jar
>
> They do appear to be on the classpath of the deployed application, however the error remains.
>
> The code in question looks like this:
>
> ...
> import javax.ws.rs.core.Context;
> import com.sun.jersey.multipart.MultiPart;
> ...
>
> @Path("/batch")
> public class MyResource
> {
>
> ...
> public BaseResource()
> {
> this.log = Logger.getLogger(this.getClass());
> log.debug("Creating a myResource");
> }
>
> @POST
> @Consumes("multipart/mixed")
> public Response postHandler(MultiPart body,
> @Context HttpHeaders hh,
> @Context UriInfo uriInfo)
> throws Exception
> {
> return a_function_call(...);
> }
>
> Any ideas?
>
> Thanks!
> -Jeff