2012-08-30 4 views
1

파일을 업로드 할 때 Jersey를 사용하고 있습니다. 나는 방법 정의 :@FormDataParam throws SEVERE : 누락 된 종속성

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

을 그리고 테스트를 위해 뉴저지 클라이언트에서 전화를 호출합니다

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

그러나, 내가 얻을 :

SEVERE : 메서드 public 자바에 대한 누락 된 의존성을. util.Collection ImageResource.uploadImage (java.io.InputStream, com.sun.jersey.core.header.FormDataContentDisposition) 매개 변수에서 java.io.IOException을 throw합니다. 색인 1에

무엇이 잘못 되었나요?

답변

2

모든 라이브러리가 동일한 버전 (예 : 1.13)인지 확인하고 mimepull.jar 및 jersey-multipart.jar도 추가해야합니다.

+4

Google에서 여기서 걸리는 모든 사람에게 : 위의 방법으로 해결되지 않으면'@Consumes (MediaType.MULTIPART_FORM_DATA) '가 있는지 확인하십시오. http://stackoverflow.com/questions/16831443을 참조하십시오. – yshavit

0

감사합니다. @john 4d5 사람들은 모든 병 버전이 동기화되어 있는지 확인하십시오. 가능한 모든 병을 찾을 수 있습니다. :)

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/을 확인해야하는 경우.

관련 문제