第25夜 JAX-RSでファイルを返す

第22夜 JDK6のHTTPサーバをパワーアップさせるJAX-RSJava SEからmainから始まるコードで簡単に使えるようになった。

そこで単純に静的ファイルを返したい場合がある。サーブレットコンテナに配備する場合はwarの中にファイルを置くだけで可能ではあるが、そうでない場合面倒では困る。また、サーブレットコンテナを利用しつつも動的に返すファイルを変えたい場合もあるだろう。

というわけでJAX-RSでファイルを返す方法を紹介する。

import java.io.File;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;

@Path("javadoc")
public class FileResource {

    @GET
    @Produces("text/html")
    public File get(){

        return new File("C:/java/jdk-6-doc-ja/docs/ja/api/overview-frame.html");
    }
}

といっても見てのとおりjava.io.Fileをかえすだけ。動的にファイル名をつける場合はセキュリティに注意するように。

簡単だね。


JavaによるRESTfulシステム構築
Bill Burke
オライリージャパン
売り上げランキング: 6239