Embedded Jetty の使い方

Tomcat などの Web コンテナーは一度設定に失敗すると、何らかの不都合な履歴が残ってしまい、 再起動/再インストールなどをしても、うまく修復できなくなることがあります。 そのようなときは、Tomcat は捨てて、Jetty というライブラリーを利用して、 履歴に依存しない Embedded Server という手法を試してください。

Java プロジェクトの作成

Embedded Server の場合、Eclipse のプロジェクトは、 Dynamic Web Project(動的 Web プロジェクト)ではなく、 ただの Java プロジェクトとして作成してください。

注意: Java 9 以降をインストールしている場合は、ここで「Create module-info.java」と訊かれますが, 「Don't Create」を選択してください。

Jar ファイルの配備

作成した Eclipse プロジェクトに Jetty ライブラリーの Jar ファイル jetty-all-9.4.21.v20190926-uber.jar を(ドラッグ&ドロップして)置いてください。

この Jar ファイルを右クリックして、「Build Path」—「Add to Build Path」を選びます。

サーブレットの作成

サーブレットのクラスは、「New」—「Class」で作成します。 サーブレットの中身は Tomcat を使うときと同じです。 (ただし、@WebServet アノテーションはなくても構いません。) ここでは、次のクラス MyDate.java を例に使用します。

main メソッドの作成

このサーブレットを起動するための main メソッドを持つクラスを作成します。 MyDate サーブレットを起動するサンプルは、 MinimumApp.java です。


「サーブレットを追加」のコメントがある部分はサーブレットのクラスとそれをアクセスするときの URL のパス部分を指定しています。サーブレットにあわせて変更してください。 複数のサーブレットを使うときは、複数指定可能です。

「HTMLなどのファイルを置くディレクトリー」のコメントがある部分は HTML や画像など静的ファイルを置く場所を示しています。 このプログラムではプロジェクトの「WebContent」というディレクトリーに HTML ファイルや画像などの静的ファイルが置かれていると仮定しています。

「ポートを指定」のコメントがある部分はサーブレットにアクセスするためのポート番号の指定です。 「ポートがすでに使われている…」という類のエラーメッセージがでるときは適宜変更してください。

この main メソッドを持つクラスを「Run」—「Run As」—「Java Application」で実行します。 ブラウザーを開いて URL に「http://localhost:8080/MyDate」を入力してください。 ここで 8080/MyDatemain メソッドのなかで指定したものです。 ページが表示されれば、成功です。

静的ファイルの配備

プロジェクトに WebContent というディレクトリーを作成し、 その中に hello.htmlという名前のファイルを作成してください。

main メソッドを持つクラスを再度実行し、 ブラウザーから、 「http://localhost:8080/hello.html」を見て、「Hello World!」と表示されれば成功です。

参考リンク


Koji Kagawa (kagawa@eng.〜)
(〜の部分はSPAM mail予防のため省略します。)