执行文件上载休息Web服务时缺少方法依赖性

时间:2011-12-28 16:42:42

标签: java rest jersey

我一直在努力了解如何修复此错误:

SEVERE: Missing dependency for method public java.lang.String com.myrest.FileService.uploadFile(java.io.File,com.sun.jersey.core.header.FormDataContentDisposition) at parameter at index 0
SEVERE: Missing dependency for method public java.lang.String com.myrest.FileService.uploadFile(java.io.File,com.sun.jersey.core.header.FormDataContentDisposition) at parameter at index 1
SEVERE: Method, public java.lang.String com.myrest.FileService.uploadFile(java.io.File,com.sun.jersey.core.header.FormDataContentDisposition), annotated with POST of resource, class com.myrest.FileService, is not recognized as valid resource method.

我正在使用基于Apache Jersey的休息网络服务并进行上传服务。

之前有人遇到此错误吗?

我收到此代码的错误:

    @POST
    @Path("/upload{path:.*}")
    @Consumes("multipart/form-data")
    @Produces("text/plain")
    public String uploadFile(
            @FormDataParam("file") File file, 
            @FormDataParam("file") FormDataContentDisposition fileDetail) {

        String fileLocation = "/files/" + fileDetail.getFileName();
        System.out.println("Copying file to : " + fileLocation);
        return "1";
    }

2 个答案:

答案 0 :(得分:22)

就我而言,问题是jersey-bundlecom.sun.jersey.contribs的不同库版本;在settign之后,两者都是相同的版本。一切顺利。

答案 1 :(得分:2)

错误消息的最后一行让我觉得你有一个丢失的JAR文件。

class com.myrest.FileService, is not recognized as valid resource method.

但除此之外我还没有看到@FormDataParam绑定到java.io.File之前,不确定框架是否可以将其反序列化为该对象。您是否尝试过反序列化为java.io.InputStream?此外,如果您使用Maven构建,请检查您的POM是否存在所有必需的依赖项。