小编moo*_*ani的帖子

Jersey 2.0客户端的文件上载失败

我正在尝试使用Jersey 2.0为Dropbox实现REST Client.

为了上传文件,我使用以下代码:

WebTarget target = client.target(targetUrl);
final FileDataBodyPart filePart = new FileDataBodyPart("file", file, MediaType.APPLICATION_OCTET_STREAM_TYPE);
final MultiPart multipart = new FormDataMultiPart().bodyPart(filePart);
Response response = target.request(MediaType.APPLICATION_JSON_TYPE).put(Entity.entity(multipart, multipart.getMediaType()));
Run Code Online (Sandbox Code Playgroud)

但是,此代码不起作用并MessageBodyProviderNotFoundException发生在该put方法中.

我怎样才能避免MessageBodyProviderNotFoundExceptionput方法中.

发生异常时,这是堆栈跟踪:

java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.codehaus.mojo.exec.ExecJavaMojo$1.run(ExecJavaMojo.java:297)
    at java.lang.Thread.run(Thread.java:724)
Caused by: org.glassfish.jersey.message.internal.MessageBodyProviderNotFoundException: MessageBodyWriter not found for media type=multipart/form-data, type=class org.glassfish.jersey.media.multipart.FormDataMultiPart, genericType=class org.glassfish.jersey.media.multipart.FormDataMultiPart.
    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 …
Run Code Online (Sandbox Code Playgroud)

java rest file-upload jax-rs jersey

2
推荐指数
1
解决办法
5747
查看次数

标签 统计

file-upload ×1

java ×1

jax-rs ×1

jersey ×1

rest ×1