@FormDataParam抛出严重:缺少依赖

时间:2012-08-30 18:40:52

标签: java rest jersey

我正在使用Jersey上传文件。 我定义了方法:

@POST
@Path("/upload")
@Consumes("multipart/form-data")
public Collection<Message> uploadImage(@FormDataParam("file") InputStream uploadedInputStream,
            @FormDataParam("file") FormDataContentDisposition fileDetail) throws IOException {
}

并调用Jersey客户端的调用进行测试:

ClientConfig cc = new DefaultClientConfig();
cc.getClasses().add(MultiPartWriter.class);
Client client = Client.create(cc);
String url = "http://localhost:8080/API/api/images/upload/150";
File f = new File("C:/Pictures/1360_435x300.jpg");
FormDataMultiPart form = new FormDataMultiPart();
form.bodyPart(new FileDataBodyPart("thumbnail", f));
String s = client.resource(url).type(MediaType.MULTIPART_FORM_DATA).accept(MediaType.APPLICATION_JSON).post(String.class, form);

但是,我得到了:

  

严重:缺少方法public java.util.Collection的依赖项   ImageResource.uploadImage(java.io.InputStream中,com.sun.jersey.core.header.FormDataContentDisposition)   在索引1的参数处抛出java.io.IOException

出了什么问题?

3 个答案:

答案 0 :(得分:2)

确保所有库都是相同的版本(例如1.13),并且不要忘记添加mimepull.jar和jersey-multipart.jar。

答案 1 :(得分:0)

谢谢@john 4d5 人们请确保所有的罐子版本都是同步的 你可以在这里找到所有可能的罐子。 :) https://maven.java.net/index.html#welcome

答案 2 :(得分:0)

您需要添加与Multipart处理相关的Maven依赖项。

    <dependency> <!-- choose your version -->
        <groupId>org.jvnet</groupId>
        <artifactId>mimepull</artifactId>
        <version>1.6</version>
    </dependency>
    <dependency> <!-- choose your version -->
        <groupId>com.sun.jersey.contribs</groupId>
        <artifactId>jersey-multipart</artifactId>
        <version>1.18.1</version>
    </dependency>

如果您需要检查http://mvnrepository.com/以获取Jersey版本的依赖项版本。