1

ジャージサーバーにファイルをアップロードしようとしましたが、エラーが発生しました。

 Writer output = null;
    File file = null;
    try {
      String text = "Rajesh Kumar";
      file = new File("write.txt");
      output = new BufferedWriter(new FileWriter(file));
        output.write(text);
        output.close();
    } catch (IOException e) {
        e.printStackTrace();
    }

    InputStream is = null;

    try {
        is = new FileInputStream(file);
        is.close(); 
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }

    FormDataMultiPart part = new FormDataMultiPart().field("file", is, MediaType.TEXT_PLAIN_TYPE);
    System.out.println(is);
    System.out.println(tenant1.getTenantId());
    System.out.println(part);
    String response = service.path("rest").path("file").type(MediaType.MULTIPART_FORM_DATA_TYPE).post(String.class, part);

Sysoはnullではありません。そのため、ファイルは入力ストリームに書き込まれました。

エラー:

ClientHandlerException: java.io.IOException: ReadError , when I send it to the server.

サーバ側:

@POST
@Path("/file")
@Consumes(MediaType.MULTIPART_FORM_DATA)
public Response postFileTenant(@FormDataParam("file") InputStream stream) throws IOException {

    // save it

    return Response.ok(IOUtils.toString(stream)).build();
}
4

1 に答える 1

1

閉じているInputStreamを渡しているため、明らかにJerseyランタイムはそこから読み取ることができません。コードから行を削除is.close();します。

于 2012-06-21T15:28:02.743 に答える