0

この例に従って、ファイルをアップロードする HTTP クライアントを作成しようとしています: http://java.dzone.com/articles/file-upload-apache-httpclient

アプリケーションを実行して RESTFul サービスにファイルをアップロードすると、次のようになります。

HTTP ERROR 500 /file/upload へのアクセスに問題があります。理由: サーバー エラーの原因: com.nice.rest.UploadFileService.uploadFile(UploadFileService.java:33) での java.lang.NullPointerException

...

33行目は次のとおりです。

public class UploadFileService {

@POST
@Path("/upload")
@Consumes(MediaType.MULTIPART_FORM_DATA)
public Response uploadFile(
        @FormDataParam("file") InputStream uploadedInputStream,
        @FormDataParam("file") FormDataContentDisposition fileDetail) {

    //line 33:  String uploadedFileLocation = "/mnt/folder/"+ fileDetail.getFileName();
    System.out.println("uploadedFileLocation : "+uploadedFileLocation);


    // save it
    writeToFile(uploadedInputStream, uploadedFileLocation);

    String output = "200 OK<br />" + uploadedFileLocation;

    return Response.status(200).entity(output).build();

}

驚いたことに、html フォームを使用してファイルをアップロードすると、正常に動作します。

form action="http://XXXX:8080/file/upload" method="post" enctype="multipart/form-data"

どうしたの?

ありがとう!!

4

1 に答える 1

0

マルチパート エンティティを構築するときは、@FormDataParam アノテーション値にマルチパート内のパートの名前が含まれていることを確認してください。

探している部分が存在しないように見えるため、NullPointerException が発生します。

可能であれば、マルチパート エンティティの構築方法を示すクライアント コードを投稿してください

于 2013-10-23T10:41:08.657 に答える