Jersey文件上载服务缺少依赖性错误

时间:2013-09-27 20:10:56

标签: java rest jersey

我正在尝试制作文件上传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.

任何建议都将不胜感激!

1 个答案:

答案 0 :(得分:0)

此异常是由响应参数(@ApiParam(...))周围的一些Swaggers注释引起的。我不确定它们为什么会导致这个问题,我相信这是因为Swagger对复杂对象的支持作为参数有限。

删除Swagger ApiParam符号解决了这个问题,只会导致无法编辑这些参数的文档。