2011-12-28 9 views
8

Ho cercato di capire come risolvere questo errore:dipendenza mancante per il metodo quando si fa un servizio di upload di file resto web

 
SEVERE: Missing dependency for method public java.lang.String com.myrest.FileService.uploadFile(java.io.File,com.sun.jersey.core.header.FormDataContentDisposition) at parameter at index 0 
SEVERE: Missing dependency for method public java.lang.String com.myrest.FileService.uploadFile(java.io.File,com.sun.jersey.core.header.FormDataContentDisposition) at parameter at index 1 
SEVERE: Method, public java.lang.String com.myrest.FileService.uploadFile(java.io.File,com.sun.jersey.core.header.FormDataContentDisposition), annotated with POST of resource, class com.myrest.FileService, is not recognized as valid resource method. 

Sto lavorando con un servizio di riposo web basato su Apache Jersey e fare un upload di servizio.

Qualcuno ha riscontrato questo errore prima?

sto ottenendo questo errore per questo codice:

@POST 
    @Path("/upload{path:.*}") 
    @Consumes("multipart/form-data") 
    @Produces("text/plain") 
    public String uploadFile(
      @FormDataParam("file") File file, 
      @FormDataParam("file") FormDataContentDisposition fileDetail) { 

     String fileLocation = "/files/" + fileDetail.getFileName(); 
     System.out.println("Copying file to : " + fileLocation); 
     return "1"; 
    } 

risposta

2

L'ultima riga del messaggio di errore mi fa pensare di avere un file JAR mancante.

class com.myrest.FileService, is not recognized as valid resource method. 

Ma a parte questo non ho visto @FormDataParam di essere legato a una java.io.File prima, non so se il quadro può deserializzare a quell'oggetto. Hai provato a deserializzare su un java.io.InputStream? Inoltre, se stai usando Maven per la compilazione, controlla il tuo POM per tutte le dipendenze richieste.

+0

registrare l'errore che sto ricevendo è simile a questo: https://gist.github.com/922072 – xybrek

21

Nel mio caso il problema erano diverse versioni di libreria di jersey-bundle e com.sun.jersey.contribs; dopo aver impostato entrambi nella stessa versione, tutto ha funzionato.

+0

Ho avuto lo stesso problema con le versioni differenti ... – Dennis

+0

Stesso qui, ho avuto una versione errata del multipart . molte grazie!! – user1240792

+0

Lo stesso per me ........... ottimo +1 –

Problemi correlati