EclipseでのJettyの設定

1.概要

Webアプリケーションは、Javaの最も一般的なユースケースの1つです。 Webサーバーとサーブレットコンテナは、アプリケーションをデプロイするためのランタイムを提供します。

残念ながら、WebサーバーへのWebアプリケーションのデプロイとトラブルシューティングは時に複雑になります。幸い、IDEはほとんどのアプリケーションに対して優れたデバッグサポートを提供しています。ただし、Webアプリケーションをデバッグするには、IDEにWebサーバーを埋め込む必要があります。

このチュートリアルでは、** JettyをEclipseに組み込み、その上でアプリケーションを実行してデバッグします。

2. Eclipse Jettyプラグイン

JettyをEclipseに接続する最も簡単な方法はEclipse Jetty Pluginを使うことです。

プラグインはマネージドJettyサーバーをEclipseに追加します。そのため、アプリケーションをシームレスにデプロイおよびテストまたはデバッグすることができます。また、プラグインはサーバーを簡単に設定するためのインターフェースを提供します。

プラグインをインストールする 最も速い方法はMarketplace を使うことです。 Eclipseでは、マーケットプレイスを利用すると、数回クリックするだけでプラグインをインストールできます。

3.サンプルアプリケーション

それでは、簡単なWebアプリケーションを開発しましょう。

最初に、私たちのプロジェクトの __/src/main/webapp/WEB-INFフォルダーに __web.xmlを追加しましょう。

<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee/webapp__4__0.xsd"
    version="4.0">

    <welcome-file-list>
        <welcome-file>helloworld.html</welcome-file>
    </welcome-file-list>

</web-app>

単純な静的ファイルを追加しましょう。私たちの場合、 __ helloworld.html __は次のようになります。

<!DOCTYPE html>
<html>
   <head>
      <meta charset="ISO-8859-1">
      <title>Hello World</title>
   </head>
   <body>Hello World!</body>
</html>

web.xml にサーブレットマッピングを追加していないことに注意してください。

代わりに、サーブレットにServlet 3アノテーションを使用します。

@WebServlet("/helloworld")
public class HelloWorldServlet extends HttpServlet

WebServlet アノテーションを使用すると、サーブレットクラスをスキャンしてコンテナにデプロイできます。

Jettyは基本的なHTTPモジュールによるアノテーションをサポートしていないことに注意してください。したがって、これを機能させるには、注釈サポートモジュールを追加する必要があります。

これを行う方法については、次のセクションで説明します。

4. Jettyでアプリケーションを実行する

サーバーへのWebアプリケーションのデプロイはベンダーによって異なります。 Eclipse Jettyプラグインがこのプロセスを処理します。同様に、それは私たちのIDEデバッガと統合し、開発体験を向上させます。

時々、我々は何らかの設定でアプリケーションを実行する必要があります。

Eclipseでは、起動設定を使用してこれを実行できます。

これはJettyで実行中のアプリケーションを探す方法です。

アプリケーション用に以下のパラメータを設定できます。

  • コンテキストパス - アプリケーションURLのプレフィックス

  • HTTPポート - アプリケーションがデプロイされているポート。デフォルトは

8080 ** HTTPSを有効にする - HTTPと共にHTTPSにデプロイする

  • HTTPSポート - デフォルトは8443です

通常のJettyと同様に、Eclipse Jettyプラグインを使用すると、デプロイする前にアプリケーションの依存関係を管理できます。 Mavenアプリケーションの場合、サーバーから提供する場合は、依存パスをクラスパスとして選択できます。

5. Jettyサーバのオプション

Jettyは高度に設定可能なサーブレットコンテナです。 Thread Pool Size Shutdown Interval など、さまざまなパラメータを指定できます。

それに加えて、Jettyは基本的なHTTPモジュールの上にさまざまなモジュールを追加することを可能にします。これらは私たちが追加できる共通のモジュールのいくつかです:

  • アノテーションサポート - サーブレット特有のアノテーションのサポートを可能にします

  • JNDIサポート - JettyによるJNDIリソース管理を可能にします

  • Websocket Support - Websocketサーバーとクライアントを有効にします

実装 ** JMXサポート - 任意のMBeanブラウザを使用してJettyを監視できます。

  • JSPサポート - JettyでJSPのコンパイルとデプロイを可能にします。

これらの設定はEclipse Jettyでも可能です。したがって、起動設定からサーバーパラメータとモジュールを設定できます。

最後に、Eclipse Jetty 4.0プラグインには組み込みJetty 9.3サーバーが付属しています。ただし、起動設定からアプリケーション用の外部Jettyサーバを設定できます。

6. Eclipse Jettyコンソール

Eclipse Jettyはコンソールに便利な制御コマンドをいくつか提供します。このコンソールは、サーバーを管理したり、サーバーからいくつかのメトリックを収集したりするのに便利です。

  • 起動設定でコンソールを有効にする必要があります** 。有効にすると、Eclipseコンソールから制御コマンドを実行できます。

これが私たちが使うことができるいくつかの一般的なコマンドのリストです:

  • メモリ - 現在のアプリケーションのメモリ情報

  • Threads - 実行中のアプリケーションのスレッドダンプ

  • 再起動 - 実行中のアプリケーションを再起動します

  • 停止 - サーバーとそのサーバー上で実行されているすべてのアプリを適切に停止します。

7.まとめ

Eclipse Jettyプラグインは、Jettyサーバーを埋め込むことによってアプリケーションを迅速に実行またはデバッグするための優れた方法です。また、アプリケーションと基盤となるJettyサーバーを設定することもできます。

このチュートリアルでは、Eclipse Jettyプラグインをインストールしてアプリケーションをデプロイしました。起動設定も作成し、アプリケーションとサーバーのパラメータを指定しました。