maven jersey-multipart缺少对javax.ws.rs.core.Response的依赖

时间:2013-05-30 08:35:08

标签: java eclipse maven jersey

我似乎缺少依赖但无法找到解决方案...... 我确保所有的球衣版本与回答here相同。

错误:

  SEVERE: The following errors and warnings have been detected with resource and/or provider classes:
  SEVERE: Missing dependency for method public abstract javax.ws.rs.core.Response com.service.copy(java.io.InputStream,com.sun.jersey.core.header.FormDataContentDisposition) at parameter at index 0

使用的依赖关系:

<dependency>
        <groupId>com.sun.jersey</groupId>
        <artifactId>jersey-servlet</artifactId>
        <version>1.17</version>
    </dependency>
    <dependency>
        <groupId>com.sun.jersey.contribs</groupId>
        <artifactId>jersey-multipart</artifactId>
        <version>1.17</version>
    </dependency>
    <dependency>
        <groupId>com.sun.jersey</groupId>
        <artifactId>jersey-json</artifactId>
        <version>1.17</version>
    </dependency>
    <dependency>
        <groupId>com.sun.jersey</groupId>
        <artifactId>jersey-bundle</artifactId>
        <version>1.17</version>
    </dependency> 

    <dependency>
            <groupId>org.jvnet</groupId>
        <artifactId>mimepull</artifactId>
        <version>1.6</version>
    </dependency>

错误发生的代码:

@POST
@Path("copy")
public Response copy(@FormDataParam("file") InputStream uploadedInputStream,
            @FormDataParam("file") FormDataContentDisposition fileDetail);

有什么想法吗? 非常感谢提前, 弗兰克

2 个答案:

答案 0 :(得分:7)

是的找到了它!

显然依赖关系没问题。

将这些添加到我的导入

import javax.ws.rs.Consumes;
import javax.ws.rs.core.MediaType;

并将代码更改为

@POST
@Path("copy")
@Consumes(MediaType.MULTIPART_FORM_DATA)
public Response copy(@FormDataParam("file") InputStream uploadedInputStream,
            @FormDataParam("file") FormDataContentDisposition fileDetail);

现在突然一切正常! 所以希望我可以帮助其他人解决同样的问题...

答案 1 :(得分:3)

@FormDataParam似乎对@Consumes注释非常挑剔。请注意(与其他所有内容不同)将此注释放在方法的接口定义上对于@FormDataParam来说还不够好!