2011-12-28 15 views
8

ファイルアップロードREST 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. 

私はApacheのジャージーベースの残りのWebサービスと連携し、アップロードをしていますサービス。

誰でもこのエラーが発生しましたか?

私は、このコードにこのエラーを取得しています:

@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"; 
    } 

答えて

2

エラーメッセージの最後の行は、私はあなたが不足しているJARファイルを持っていると思わせます。

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

しかし、それ以外の私は、フレームワークは、そのオブジェクトにそれをデシリアライズすることができますかどうかわから、@FormDataParamが前のjava.io.Fileに拘束されない見ていません。代わりにjava.io.InputStreamにデシリアライズしてみましたか?また、ビルドにMavenを使用している場合、必要なすべての依存関係をPOMで確認してください。

+0

エラーログはこれに似ています:https://gist.github.com/922072 – xybrek

21

私の場合、問題はjersey-bundlecom.sun.jersey.contribsという異なるライブラリバージョンでした。両方とも同じバージョンに設定した後、すべてが機能しました。

+0

私は異なるバージョンで同じ問題がありました... – Dennis

+0

同じですが、私はマルチパートのバージョンが間違っていました。どうもありがとう!! – user1240792

+0

私と同じです........... great +1 –

関連する問題