CodeZine(コードジン)

特集ページ一覧

EclipseでWebプロジェクトを作ってみよう〜TomcatプラグインとTomcatプロジェクト

20年経ってもデファクトスタンダードIDEのEclipse入門 第6回

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2021/05/13 11:00

 本連載ではIDEの1つであるEclipseを紹介していきます。Eclipseが世に出てから20年以上は経過していますが、いまだにデファクトスタンダードという不動の地位にいます。歴史もあり、様々な開発者に利用されている割には、Eclipseの入門にあたるまとまった情報源は意外と少ないといえます。本連載がその一助となれば幸いです。前回は、プラグインとその追加方法を紹介しました。今回は、前回追加したEclipse Tomcat Pluginを利用して、EclipseでJavaのWebアプリケーションの作り方を紹介します。

目次

Eclipse Tomcat Pluginの役割

 Eclipseを使ってJavaのWebアプリケーションを作成する場合、プラグインを利用する必要があります。そのようなプラグインとして、本連載では、前回、Eclipseマーケットプレースを利用してインストールしたEclipse Tomcat Pluginと、Pleiades All in Oneにもともと含まれているWTPを使ったWebアプリケーションの作成方法を紹介します。そのうち、今回はEclipse Tomcat Pluginを紹介します。

 この2個のプラグインは、それぞれ得意とするWebアプリケーションが違います。どう違うかを理解するためには、JavaのWebアプリケーションの仕様についての理解が不可欠です。まずは、そこから話を始めていきましょう。

Java Standard Edition

 Javaの言語仕様には、いくつかエディションがあり、その中心となるのが、Standard Editionです。このエディションは、通常、Java SEとよばれます。Java SEは、StringやSystem、MapやArrayListなど、基本となるクラス群が定義された仕様そのものです。これらの仕様は、Oracle管理下のJCP(Java Community Process)という団体で策定され、原稿執筆時点での最新バージョンは16です。

 この策定されたJava SEの仕様をもとに、実際に動作するものとして実装されたのが、JDK(Java Development Kit)です。JDKで有名なのは、本家のOracleが提供しているOracle JDKですが、こちらを商用利用するためにはライセンス料が必要です。

 他にも、IBM SDKAmazon CorrettoAdoptOpenJDKなど、有償無償を含めて様々な企業、団体がJDKをリリースしており、ダウンロードできるようになっています。

Enterprise Edition

 このJava SEを中心に、さらに、大規模Webアプリケーション開発に必要な仕様を付け加えたエディションが、Enterprise Edition、略してEEです。EEも、バージョン8までは、Java EEという名称でしたが、現在は、Jakarta EEという名称になっています。

 Java EE 8がリリースされたのち、2018年にOracleがこのEEの策定団体をEclipse財団に移管しました。Javaという名称はOracleが商標として持っているので、Eclipse財団はこの名称が使えず、代わりに、Jakartaという名称に変更しています。その、Jakarta EEは、2019年9月にJava EE 8と完全互換のJakarta EE 8のリリースを経て、現在、2020年12月にリリースした9が最新バージョンです。

 そのEEの中心となるのが、サーブレットです。つまり、JavaのWebアプリケーションを作成しようとすると、SEだけ、すなわち、JDKだけでは無理であり、EEを実装したものが必要となります。

 そのEEを実装したものが、アプリケーションサーバです。つまり、JavaのWebアプリケーションを実行するためのサーバソフトウェアが、そのままEE実装になります。アプリケーションサーバとして有名なものには、有償のOracleのWebLogic ServerやIBMのWebSphereがあります。オープンソースとしては、RedHatがリリースしているJBossとそのJBossのコミュニティー版であるWildFly、EclipseのGlassFishがあります。

 そして、これらアプリケーションサーバで動作するWebアプリケーションを作成するのに最適なEclipseプラグインが次回に紹介するWTPです。

Tomcatの位置付け

 JavaのWebアプリケーションの実行基盤として非常によく使われているのが、オープンソースのApache Tomcatであり、Pleiades All in Oneに同梱されています。このTomcatは、厳密には、アプリケーションサーバではなく、Webコンテナといわれます。どういうことでしょうか。

 アプリケーションサーバを名乗る限りは、原則的にEEの仕様全てを満たしている必要があります。一方、EEはその名称通り、大規模Webアプリケーション向けの仕様なので、小規模〜中規模程度のWebアプリケーションには重厚長大すぎて、無駄なところが多々あります。先述の通り、JavaのWebアプリケーションの中心はサーブレットなので、このサーブレットを中心に、いくつかの便利な仕様のみを満たした軽量な実行基盤があれば、充分というプロジェクトも多々あります。Tomcatはそのようなプロジェクトに最適な実行基盤です。

 そして、そのTomcatで動作するWebアプリケーションの作成に最適化されたプラグインが、これから紹介するEclipse Tomcat Pluginです。

 もちろん、WTPでTomcat向けのWebアプリケーションも作れますが、元々が重厚長大なアプリケーションサーバ向けのプラグインなだけに、扱いにくいところもあります。実行基盤をTomcatと限定するならば、Eclipse Tomcat Pluginの方がはるかに効率よくアプリケーション作成が行えます。どのように効率がいいのかについては、後述します。

WARファイル構成とデプロイ

 概説はここまでにして、実際に手を動かして、プロジェクトを作成したいところですが、もう1点プロジェクト作成の前に理解しておいた方がよい内容があります。それは、JavaのWebアプリケーションのファイル構成です。

JavaのWebアプリケーションのファイル構成

 JavaのWebアプリケーションは、そのファイル構成が決められており、図1のようになっています。

図1: JavaのWebアプリケーションのファイル構成
図1: JavaのWebアプリケーションのファイル構成

 最初のフォルダがアプリケーションのルートフォルダであり、その直下にWEB-INFフォルダを配置します。このWEB-INF以外のフォルダやファイルはその階層のままWebに公開されます。したがって、htmlファイルやcssファイル、jsファイルや画像ファイルなどは、ルートフォルダ直下に適切なサブフォルダを作成して、その中に格納します。

 一方、WEB-INFフォルダ内はWebには公開されないので、アプリケーションの動作に必要だがWebに公開したくないファイル類はこのフォルダ内に配置します。

 そのWEB-INF内には少なくともclassesフォルダを配置し、その中に.javaファイルをコンパイルした.classファイルを配置しておく必要があります。もし、その他のライブラリ類が必要ならば、libフォルダ内に配置します。さらに、アプリケーションの設定ファイルであるweb.xmlファイルを配置する場合も、このWEB-INFフォルダ直下に配置します。

warファイルとデプロイ

 このファイル構成は、Tomcatに限らず、アプリケーションサーバ、つまりは、EEの共通仕様となっています。そして、このアプリケーションのルートフォルダごとアーカイブファイルとし、拡張子を.warとしたものを、warファイルといいます。そのため、この構成を、WARファイル構成ともいいます。

 また、アプリケーションサーバでJavaのWebアプリケーションを稼働させることを、デプロイといいます。そして、通常、デプロイは、このwarファイルをアプリケーションサーバの適切なフォルダに配置する処理となります。


  • LINEで送る
  • このエントリーをはてなブックマークに追加

あなたにオススメ

著者プロフィール

  • WINGSプロジェクト 齊藤 新三(サイトウ シンゾウ)

    <WINGSプロジェクトについて> 有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きた...

  • 山田 祥寛(ヤマダ ヨシヒロ)

    静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for ASP/ASP.NET。執筆コミュニティ「WINGSプロジェクト」代表。 主な著書に「入門シリーズ(サーバサイドAjax/XM...

バックナンバー

連載:20年経ってもデファクトスタンダードIDEのEclipse入門
All contents copyright © 2005-2021 Shoeisha Co., Ltd. All rights reserved. ver.1.5