我正在使用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
出了什么问题?
答案 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版本的依赖项版本。