【发布时间】:2015-06-07 00:24:56
【问题描述】:
http://www.mkyong.com/webservices/jax-rs/file-upload-example-in-jersey/ 我正在遵循本指南并遇到问题。我有一些问题。
-
所有依赖都必须对应吗?我的项目有一些 org.glassfish.jersey 依赖项,本指南建议使用 org.sun.jersey。我是否也必须使用相同的版本来更改它?
<dependency> <groupId>org.glassfish.jersey.media</groupId> <artifactId>jersey-media-multipart</artifactId> <version>2.16</version> </dependency> <dependency> <groupId>org.glassfish.jersey.core</groupId> <artifactId>jersey-server</artifactId> <version>2.16</version> -
我有这个错误
org.glassfish.jersey.server.model.ModelValidationException: Validation of the application resource model has failed during application initialization. [[FATAL] No injection source found for a parameter of type public ***.***.****.common.dto.response.AbstractResponse ***.***.****.m2m.instancetypeupload.webservice.InstanceTypeUploadWebService.upload(java.io.InputStream,org.glassfish.jersey.media.multipart.FormDataContentDisposition) at index 0.; source='ResourceMethod{httpMethod=POST, consumedTypes=[multipart/form-data], producedTypes=[application/json], suspended=false, suspendTimeout=0, suspendTimeoutUnit=MILLISECONDS, invocable=Invocable{handler=ClassBasedMethodHandler{handlerClass=class ***.***.****.m2m.instancetypeupload.webservice.InstanceTypeUploadWebService, handlerConstructors=[org.glassfish.jersey.server.model.HandlerConstructor@90516e]}, definitionMethod=public ***.***.***.common.dto.response.AbstractResponse ***.***.*****.m2m.instancetypeupload.webservice.InstanceTypeUploadWebService.upload(java.io.InputStream,org.glassfish.jersey.media.multipart.FormDataContentDisposition), parameters=[Parameter [type=class java.io.InputStream, source=file1, defaultValue=null], Parameter [type=class org.glassfish.jersey.media.multipart.FormDataContentDisposition, source=file1, defaultValue=null]], responseType=class ***.***.***.common.dto.response.AbstractResponse}, nameBindings=[]}']这是我的网络服务
@POST @Path("/upload") @Consumes(MediaType.MULTIPART_FORM_DATA) @Produces(MediaType.APPLICATION_JSON) public AbstractResponse upload(@FormDataParam("file1") InputStream file1, @FormDataParam("file1") FormDataContentDisposition filename1 ) {这是我的电话:
$.ajax({ url: 'http://localhost:8080/******/webapi/m2m/upload', data: fd, processData: false, contentType: 'multipart/form-data', type: 'POST', success: function(data){ alert(JSON.stringify(data)); return; } });
如果 Web 服务只有 1 个参数(FormData InputStream),则它是可访问的。如何解决?
- 我还想为 Web 服务添加另一个字符串参数。我该怎么办?
感谢 peeskillet 的回答。有点多余。
SEVERE: The web application [/linterm2m] created a ThreadLocal with key of type [org.jvnet.hk2.internal.PerLocatorUtilities$1] (value [org.jvnet.hk2.internal.PerLocatorUtilities$1@df94b1]) and a value of type [java.util.WeakHashMap] (value [{}]) but failed to remove it when the web application was stopped. This is very likely to create a memory leak.
【问题讨论】:
标签: java rest glassfish multipartform-data jersey-2.0