2012-08-30 197 views
1

我正在使用Jersey上傳文件。 我定義的方法:@FormDataParam引發SEVERE:缺少依賴關係

@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); 

不過,我得到:

重度:對方法公共Java丟失的依賴。 util.Collection ImageResource.uploadImage(java.io.InputStream,com.sun.jersey.core.header.FormDataContentDisposition) 在參數中拋出java.io.IOException索引1

有什麼不好?

回答

2

確保所有庫的版本相同(如1.13),並且不要忘記添加mimepull.jar和新澤西州multipart.jar爲好。

+4

爲了任何人誰在這裏失足從谷歌:如果上述方法不奏效,請確保你有'@Consumes(MediaType.MULTIPART_FORM_DATA)'。請參閱http://stackoverflow.com/questions/16831443 – yshavit

0

您需要添加與多部分處理相關的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/的依賴關係爲您的新澤西版本的版本。