2018-06-25  Java Web プログラミング

RESTアプリケーションをJettyで動かす

前回の記事で作成した REST アプリケーションを Jetty を動かします。Jetty Jersey ライブラリを追加する手順 作成した WAR ファイルをデプロイしてブラウザから動作確認するところまでを Windows 環境を例に説明していきます。

Jetty Jersey… 名前が似ていて混乱してしまいそうですね。

  • Jetty はサーブレットを動かすことができる Web コンテナ アプリケーション サーバー です。
  • Jersey Java REST を扱うための API である JAX-RS のリファレンス実装ライブラリです。

REST アプリケーション WAR ファイル の開発手順については以下の記事を参照してください。

JettyとJersey をダウンロードする

以下のサイトから Jetty Windows 版をダウンロードします。

以下のサイトから Jersey モジュールをダウンロードします。

2018 6 25 日時点のバージョンは Jetty 9.4.11 Jersey 2.27 でした。

ダウンロードした jetty-9.4.11+jre8u172-x64.zip C:\jetty-9.4.11 に展開します。他のフォルダーに展開した場合は適宜読み替えてください。

jaxrs-ri-2.27.zip も展開して 中に入っている lib modules C:\jetty-9.4.11 に上書きコピーします。

JettyでJAX-RS(Jersey)を有効にする

コマンドプロンプトを起動して C:\jetty-9.4.11 に移動します。

以下のコマンドを実行して JAX-RS Jersey を有効にします。

jaxrs-riを有効にするコマンド
jetty.exe --add-to-start=jaxrs-ri
コマンドプロンプト
C:¥jetty-9.4.11>jetty.exe --add-to-start=jaxrs-ri INFO : jaxrs-ri initialized in ${jetty.base}¥start.ini INFO : Base directory was modified

作成したWARファイルをデプロイして動かす

Jetty への Web アプリケーション配備はとても簡単です。Jetty webapps フォルダーに WAR ファイルをコピーするだけでデプロイ 配備 が完了します。

前回作成した myapp.war C:\jetty-9.4.11\webapps フォルダーにコピーしてください。

これで準備は完了です。jetty.exe を実行してサーバーを起動してみましょう。

Jettyを起動するコマンド
jetty.exe
コマンドプロンプト
C:¥jetty-9.4.11>jetty.exe 2018-06-25 20:43:25.911:INFO::main: Logging initialized @3525ms to org.eclipse.jetty.util.log.StdErrLog 2018-06-25 20:43:26.420:WARN:oejs.HomeBaseWarning:main: This instance of Jetty is not running from a separate {jetty.base} directory, this is not recommended. See documentation at http://www.eclipse.org/jetty/documentation/current/startup.html 2018-06-25 20:43:26.549:INFO:oejs.Server:main: jetty-9.4.11.v20180605; built: 2018-06-05T18:24:03.829Z; git: d5fc0523cfa96bfebfbda19606cad384d772f04c; jvm 1.8.0_172-b11 2018-06-25 20:43:26.579:INFO:oejdp.ScanningAppProvider:main: Deployment monitor [file:///C:/jetty-9.4.11/webapps/] at interval 1 2018-06-25 20:43:26.933:WARN:oeja.AnnotationParser:main: Unknown asm implementation version, assuming version 393216 2018-06-25 20:43:27.028:INFO:oeja.AnnotationConfiguration:main: Scanning elapsed time=93ms 2018-06-25 20:43:27.490:INFO:oejs.session:main: DefaultSessionIdManager workerName=node0 2018-06-25 20:43:27.491:INFO:oejs.session:main: No SessionScavenger set, using defaults 2018-06-25 20:43:27.493:INFO:oejs.session:main: node0 Scavenging every 660000ms 2018-06-25 20:43:27.569:INFO:oejsh.ContextHandler:main: Started o.e.j.w.WebAppContext@1f97cf0d{myapp,/myapp,file:///C:/Users/user/AppData/Local/Temp/jetty-0.0.0.0-8080-myapp.war-_myapp-any-4601389772720294532.dir/webapp/,AVAILABLE}{C:¥jetty-9.4.11¥webapps¥myapp.war} 2018-06-25 20:43:27.608:INFO:oejs.AbstractConnector:main: Started ServerConnector@2f1de2d6{HTTP/1.1,[http/1.1]}{0.0.0.0:8080} 2018-06-25 20:43:27.623:INFO:oejs.Server:main: Started @5234ms

最終行に Started と表示されていれば起動完了です。

ブラウザーを起動して http://localhost:8080/myapp/api/hello にアクセスします。

Hello, World!! と表示されれば成功です。コマンドプロンプトで Ctrl + C を押すと Jetty を停止することができます。

RESTアプリケーションとURLの関係

REST アプリケーションのリソース メソッドがマッピングされる URL は以下のように決まります。

リソース クラスの @Path アノテーションにもパスを指定した場合 /api /hello にもう一階層パスができます。

(おまけ)JettyをWindowsサービスとして登録する

Windows Jetty Windows サービスとして登録することもできます。Windows サービスへの登録には管理者権限が必要です。

サービスのインストール

JettyをWindowsサービスとして登録するコマンド
jetty.exe -install
管理者: コマンドプロンプト
C:¥jetty-9.4.11>jetty.exe -install jetty サービスをインストールしました。

サービスの開始

Jettyサービスを開始するコマンド
net start jetty
管理者: コマンドプロンプト
C:¥jetty-9.4.11>net start jetty jetty サービスを開始します. jetty サービスは正常に開始されました。

サービスの停止

Jettyサービスを停止するコマンド
net stop jetty
管理者: コマンドプロンプト
C:¥jetty-9.4.11>net stop jetty jetty サービスを停止中です. jetty サービスは正常に停止されました。

サービスの削除

Jettyサービスの登録を解除するコマンド
jetty.exe -remove
管理者: コマンドプロンプト
C:¥jetty-9.4.11>jetty -remove jetty サービスを削除しました。

次回は Jetty Eclipse を連携させる方法を紹介したいと思います。

最終更新日 2024-12-16
この記事を共有しませんか?
ブックマーク ポスト