2

我正在使用 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

怎么了?

4

3 回答 3

4

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

于 2012-08-30T23:25:54.150 回答
0

谢谢@john 4d5 请确保所有 jars 版本同步您可以在此处找到所有可能的 jars。:) https://maven.java.net/index.html#welcome

于 2013-04-07T18:10:07.407 回答
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>

If you need check http://mvnrepository.com/ for the versions of the dependencies for your Jersey version.

于 2016-04-26T03:12:21.330 回答