第22夜 JDK6のHTTPサーバをパワーアップさせるでJAX-RSがJava 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システム構築
posted with amazlet at 10.08.23