我正在尝试制作文件上传RESTful服务。但它正在吐出依赖性错误。
这是我的代码:
@ApiOperation(
value = "Upload File.",
notes = "Uploads and stores user files to the server." )
@ApiResponses(value = {
@ApiResponse(code = 403, message = "User not authorized to upload files."),
@ApiResponse(code = 500, message = "Server error")})
@POST
@Consumes(MediaType.MULTIPART_FORM_DATA)
public Response uploadFile(
@ApiParam( value = "File", required = false)
@FormDataParam("file") InputStream uploadInputStream,
@ApiParam( value = "File Data", required = false)
@FormDataParam("file") FormDataContentDisposition fileDetail
){
return Response.ok("Test new endpoint").build();
}
我的pom.xml中的pom中有匹配的版本或者jersey和multipart
<dependency>
<groupId>com.sun.jersey.contribs</groupId>
<artifactId>jersey-multipart</artifactId>
<version>${jersey.version}</version>
</dependency>
<!-- jersey -->
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-server</artifactId>
<version>${jersey.version}</version>
</dependency>
这是正在产生的错误
SEVERE: Missing dependency for method public javax.ws.rs.core.Response com.lotame.ws.api.resources.FileResource.uploadFile(java.io.InputStream,com.sun.jersey.core.header.FormDataContentDisposition) at parameter at index 0
SEVERE: Missing dependency for method public javax.ws.rs.core.Response com.lotame.ws.api.resources.FileResource.uploadFile(java.io.InputStream,com.sun.jersey.core.header.FormDataContentDisposition) at parameter at index 1
SEVERE: Method, public javax.ws.rs.core.Response com.lotame.ws.api.resources.FileResource.uploadFile(java.io.InputStream,com.sun.jersey.core.header.FormDataContentDisposition), annotated with POST of resource, class com.lotame.ws.api.resources.FileResource, is not recognized as valid resource method.
任何建议都将不胜感激!
答案 0 :(得分:0)
此异常是由响应参数(@ApiParam(...))周围的一些Swaggers注释引起的。我不确定它们为什么会导致这个问题,我相信这是因为Swagger对复杂对象的支持作为参数有限。
删除Swagger ApiParam符号解决了这个问题,只会导致无法编辑这些参数的文档。