私はRESTサービスを使用したファイル転送プロセスに取り組んでいます。JavaでRESTジャージーAPIを使用しています。私は、html投稿またはajax投稿を介してこのプロセスを実行していません(つまり、Webアプリケーションを作成していません)。1つのRESTHttpサーバーを作成し、1つのRESTクライアントを使用してファイル転送操作を処理しています。Webリソースメソッドは別のクラスファイルにあります。
testREST.java
@POST
@Path("/upload")
@Consumes(MediaType.MULTIPART_FORM_DATA)
public Response uploadFile(
@FormDataParam("file") InputStream uploadedInputStream,
@FormDataParam("file") FormDataContentDisposition fileDetail) {
String uploadedFileLocation = "d://uploaded/" + fileDetail.getFileName();
// save it
writeToFile(uploadedInputStream, uploadedFileLocation);
String output = "File uploaded to : " + uploadedFileLocation;
return Response.status(200).entity(output).build();
}
RESTClient.java
try {
final ClientConfig config = new DefaultClientConfig();
final Client client = Client.create(config);
final WebResource resource = client.resource(REST_URI);
File f = new File("D:/test/Doc1.rar");
FileInputStream fs = new FileInputStream(f);
byte[] con= new byte[(int)f.length()];
fs.read(con);
FormDataMultiPart form = new FormDataMultiPart();
FormDataBodyPart fdp = new FormDataBodyPart("content", MediaType.MULTIPART_FORM_DATA);
form.bodyPart(fdp);
final String response = resource.path("test").path("transfer").type(MediaType.MULTIPART_FORM_DATA).post(String.class, form);
} catch (Exception ex) {
System.out.println("Exception Occcured");
ex.printStackTrace();
}
しかし、RESTサーバー自体を起動しているときに、testREST.javaの有効なリソースメソッドではないなどの例外が発生します。ここではFormDataParamを使用していると思います。私のコードが間違っています。