Jetty Runner
JavaでWebアプリを試したい場合はTomcatやGlassFishといったアプリケーションサーバを用意して、設定ファイルを作って、デプロイして...といった手順が必要になる。でも、サンプル作成やデバッグ目的でもっと手軽にServletを作りたい時がある。
Dockerを使って環境を用意してもいいけど、[PHP] PHPのビルトインサーバでxdebugを使うの"php -S"並みにできないだろうか。
こんな時はJettyを使うといい。
Jettyはシンプルで軽量なServletコンテナで以下で公開されている。
https://www.eclipse.org/jetty/
Jettyの中でも今回の目的に沿ったもので、最小構成ということになるとJetty Runnerを使うのが良さそう。
https://www.eclipse.org/jetty/documentation/9.4.x/runner.html
以下のURLからダウンロードするかmavenを使ってインストールしよう。
http://central.maven.org/maven2/org/eclipse/jetty/jetty-runner/
Jetty Runnerはjetty-runner.jarがあればいいだけなので、とても簡単。
サンプルプログラム
なんの変哲も無いServlet。local/JettySample.java
package local; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; @WebServlet("/jettysample") public class JettySample extends HttpServlet { private static final long serialVersionUID = 1L; @Override public void doGet(HttpServletRequest req, HttpServletResponse res) throws IOException { res.getWriter().println("Hello jetty."); } }
ビルド
ビルドツールも使わずに最小限の構成でやろうとすると以下になる。Servletのクラスパスもjetty-runner.jarを参照すればいい。
$ javac -Xlint -d WEB-INF/classes -cp jetty-runner.jar local/JettySample.java $ jar cf jettysample.war WEB-INF
事前にwarファイル用のディレクトリ構成を作っておく必要があるけど、最小限以下があればOK。
WEB-INF/classes/
この下にコンパイルしたclassファイルを配置して、warを作成すればいい。
今回の場合はこうなる。
WEB-INF/classes/local/JettySample.class
これで、jettysample.warができたので、次は実際に動かしてみる。
起動
jetty-runner.jarの引数にwarファイルのパスを渡すだけ。$ java -jar jetty-runner.jar jettysample.war
終了する時はctrl-cで。
これだけで、8080ポートで起動するので、ブラウザから見てみよう。
http://localhost:8080/jettysample
でアクセスすると"Hello jetty."が表示される。
0 件のコメント:
コメントを投稿