1. 概要

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

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

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

2. EclipseJettyプラグイン

JettyをEclipseに接続する最も簡単な方法は、EclipseJettyプラグインを使用することです。

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

プラグインをインストールする最も簡単な方法は、Marketplaceを使用することです。 Eclipseでは、Marketplaceを使用すると、数回クリックするだけでプラグインをインストールできます。

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にサーブレットマッピングを追加していないことに注意してください。

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

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

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

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

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

4. Jettyでのアプリケーションの実行

サーバーへのWebアプリケーションのデプロイは、ベンダーによって異なります。 EclipseJettyプラグインがこのプロセスを処理してくれます。 同様に、IDEデバッガーと統合され、開発エクスペリエンスが向上します。

場合によっては、何らかの構成でアプリケーションを実行する必要があります。 Eclipseでは、起動構成を使用してこれを行うことができます。

Jettyで実行中のアプリケーションを探す方法は次のとおりです。

アプリケーションに対して次のパラメーターを構成できます。

  • コンテキストパス–アプリケーションURLのプレフィックス
  • HTTPポート–アプリケーションがデプロイされているポート。デフォルトは8080です。
  • HTTPSを有効にする–HTTPとともにHTTPSにデプロイする場合
  • HTTPSポート–デフォルトは8443です

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

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

Jettyは、高度に構成可能なサーブレットコンテナです。 スレッドプールサイズシャットダウン間隔など、さまざまなパラメータを指定できます。

さらに、Jettyを使用すると、基本HTTPモジュールの上にさまざまなモジュールを追加できます。 これらは、追加できる一般的なモジュールの一部です。

  • 注釈のサポート–サーブレット固有の注釈のサポートを有効にします
  • JNDIサポート–JettyによるJNDIリソース管理を可能にします
  • Websocketサポート–Websocketサーバーとクライアントの実装を可能にします
  • JMXサポート–任意のMBeansブラウザを使用してJettyを監視できます
  • JSPサポート–JettyでのJSPのコンパイルとデプロイを可能にします

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

最後に、EclipseJetty4.0プラグインにはJetty9.3サーバーが組み込まれています。 ただし、起動構成からアプリケーションの外部Jettyサーバーを構成できます。

6. Eclipse Jetty Console

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

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

使用できる一般的なコマンドのリストを次に示します。

  • メモリ–現在のアプリケーションのメモリ情報
  • スレッド–実行中のアプリケーションのスレッドダンプ
  • 再起動–実行中のアプリケーションを再起動します
  • 停止–サーバーとサーバー上で実行されているすべてのアプリを正常に停止します

7. 結論

Eclipse Jettyプラグインは、Jettyサーバーを埋め込むことにより、アプリケーションをすばやく実行またはデバッグするための優れた方法です。 また、アプリケーションと基盤となるJettyサーバーを構成することもできます。

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