users@jersey.java.net

[Jersey] Re: MessageBodyWriter not found for media type=text/plain

From: Noritaka Sekiyama <moomindani_at_gmail.com>
Date: Wed, 17 Jul 2013 20:19:13 +0900

Sorry, I changed the code to use FileInputStream by myself,
and confirmed that it works fine.

Here's changed code.

---
Client client = ClientBuilder.newBuilder().register(JacksonFeature.class).build();
Response response = target.request().put(Entity.entity(new FileInputStream(file),MediaType.APPLICATION_OCTET_STREAM_TYPE));
---
Thank you.  
--  
Noritaka Sekiyama
Twitter: @moomindani
Blog: mooapp http://moomindani.wordpress.com (http://moomindani.wordpress.com/)
日付:2013年7月16日火曜日、時刻:23:14、差出人:Noritaka Sekiyama:
> Hello Jersey Users,
>  
>  
> I wrote following code and got error "MessageBodyWriter not found for media type=text/plain".  
> I thought that it was because Feature.class corresponding to FileDataBodyPart must be registered to ClientBuilder.  
> But, I could not find such class.  
>  
> How could I modify my code and avoid this error?
>  
> ---
> Client client = ClientBuilder.newBuilder().register(JacksonFeature.class).build();
> final FileDataBodyPart filePart = new FileDataBodyPart("file", file);
> Response response = target.request().put(Entity.entity(filePart, filePart.getMediaType()));
> ---
>  
> Here's stack trace.  
> ---
> Exception in thread "main" org.glassfish.jersey.message.internal.MessageBodyProviderNotFoundException: MessageBodyWriter not found for media type=text/plain, type=class org.glassfish.jersey.media.multipart.file.FileDataBodyPart, genericType=class org.glassfish.jersey.media.multipart.file.FileDataBodyPart.
> at org.glassfish.jersey.message.internal.WriterInterceptorExecutor$TerminalWriterInterceptor.aroundWriteTo(WriterInterceptorExecutor.java:191)
> at org.glassfish.jersey.message.internal.WriterInterceptorExecutor.proceed(WriterInterceptorExecutor.java:139)
> at org.glassfish.jersey.message.internal.MessageBodyFactory.writeTo(MessageBodyFactory.java:1005)
> at org.glassfish.jersey.client.ClientRequest.writeEntity(ClientRequest.java:430)
> at org.glassfish.jersey.client.HttpUrlConnector._apply(HttpUrlConnector.java:287)
> at org.glassfish.jersey.client.HttpUrlConnector.apply(HttpUrlConnector.java:200)
> at org.glassfish.jersey.client.ClientRuntime.invoke(ClientRuntime.java:215)
> at org.glassfish.jersey.client.JerseyInvocation$1.call(JerseyInvocation.java:634)
> at org.glassfish.jersey.client.JerseyInvocation$1.call(JerseyInvocation.java:631)
> at org.glassfish.jersey.internal.Errors.process(Errors.java:315)
> at org.glassfish.jersey.internal.Errors.process(Errors.java:297)
> at org.glassfish.jersey.internal.Errors.process(Errors.java:228)
> at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:421)
> at org.glassfish.jersey.client.JerseyInvocation.invoke(JerseyInvocation.java:631)
> at org.glassfish.jersey.client.JerseyInvocation$Builder.method(JerseyInvocation.java:391)
> at org.glassfish.jersey.client.JerseyInvocation$Builder.put(JerseyInvocation.java:285)
> at com.clouddrive.dropbox.DropBoxController.uploadFile(DropBoxController.java:162)
> at com.clouddrive.util.WatchDir.processEvents(WatchDir.java:200)
> at com.clouddrive.CloudDrive.main(CloudDrive.java:111)
>  
>  
>  
>  
>  
> --  
> Noritaka Sekiyama
> Twitter: @moomindani
> Blog: mooapp http://moomindani.wordpress.com (http://moomindani.wordpress.com/)