【问题标题】:error uploading file HTTP Client & RESTful server上传文件 HTTP 客户端和 RESTful 服务器时出错
【发布时间】:2013-10-31 06:05:47
【问题描述】:

我正在尝试创建一个 HTTP 客户端以按照以下示例上传文件:http://java.dzone.com/articles/file-upload-apache-httpclient

当我运行应用程序将文件上传到我的 RESTFul 服务时,我得到:

HTTP 错误 500 访问 /file/upload 时出现问题。原因: 服务器错误原因:java.lang.NullPointerException 在 com.nice.rest.UploadFileService.uploadFile(UploadFileService.java:33)

...

第 33 行在哪里:

公共类 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://X.X.X.X:8080/file/upload" method="post" enctype="multipart/form-data"

怎么了?

谢谢!!

【问题讨论】:

  • 过去负责将文件上传到您的 REST 服务的代码。似乎请求正文中没有file 参数。

标签: rest file-upload apache-httpclient-4.x


【解决方案1】:

在构建多部分实体时,请确保 @FormDataParam 注释值包含多部分中的部分名称。

您要查找的部分似乎不存在,因此出现 NullPointerException。

如果可能,请发布您的客户端代码,展示您如何构建多部分实体

【讨论】:

    猜你喜欢
    • 2011-01-28
    • 2014-03-11
    • 1970-01-01
    • 1970-01-01
    • 2012-11-14
    • 1970-01-01
    • 2021-10-12
    • 2013-04-24
    相关资源
    最近更新 更多