モーダルを閉じる工作HardwareHub ロゴ画像

工作HardwareHubは、ロボット工作や電子工作に関する情報やモノが行き交うコミュニティサイトです。さらに詳しく

利用規約プライバシーポリシー に同意したうえでログインしてください。

工作HardwareHub ロゴ画像 (Laptop端末利用時)
工作HardwareHub ロゴ画像 (Mobile端末利用時)
目次目次を開く/閉じる

Apache Tomcat と Eclipse の連携設定

モーダルを閉じる

ステッカーを選択してください

モーダルを閉じる

お支払い内容をご確認ください

購入商品
」ステッカーの表示権
メッセージ
料金
(税込)
決済方法
GooglePayマーク
決済プラットフォーム
確認事項

利用規約をご確認のうえお支払いください

※カード情報はGoogleアカウント内に保存されます。本サイトやStripeには保存されません

※記事の執筆者は購入者のユーザー名を知ることができます

※購入後のキャンセルはできません

作成日作成日
2017/04/19
最終更新最終更新
2019/09/28
記事区分記事区分
一般公開

目次

    アカウント プロフィール画像 (サイドバー)

    インフラ構築と自動化が得意。TerraformとAnsibleでインフラを自動構築するお仕事が多め

    0
    ステッカーを贈るとは?

    Java で Web アプリケーションを開発する際は、一般にビルド結果および必要なリソースファイルなどを WAR (Web application ARchive) 形式のファイルにパッケージングします。JAR ファイルと同様に実行可能 WAR を作ることもできますが、通常は Servlet コンテナとよばれるアプリケーションの上で動かします。Servlet コンテナとしては Tomcat が有名です。本ページでは Tomcat で動かすアプリケーションを Eclipse で開発するための基本的な設定方法をまとめます。

    Tomcat には Catalina とよばれる Servlet コンテナだけでなく、開発時などを想定して Coyote とよばれる HTTP サーバも内蔵されているため、単体で HTTP リクエストを受けて WAR を利用したレスポンスを返すことができます。Servlet コンテナは必ずしも WAR ファイルの外で提供する必要はなく、Jetty のような軽量な Servlet をアプリケーションに組込むこともできます。

    開発用 Tomcat インストール

    ここでは特に、開発時に使用する Windows および macOS を想定して、Eclipse との連携を意識した Tomcat インストールを行います。Java EE 開発用の Eclipseはインストール済みであるとします。

    Windows

    例えば Tomcat 8.0 をインストールしたい場合は、こちらのページの Core / 32-bit/64-bit Windows Service Installer をダウンロードしてインストールします。

    macOS

    Homebrew を利用します。以下は 2017/04/23 現在の実行結果です。

    $ brew info tomcat
    tomcat: stable 8.0.35, devel 9.0.0.M6
    Implementation of Java Servlet and JavaServer Pages
    https://tomcat.apache.org/
    Not installed
    From: https://github.com/Homebrew/homebrew-core/blob/master/Formula/tomcat.rb
    ==> Options
    --with-fulldocs
    Install full documentation locally
    --devel
    Install development version 9.0.0.M6
    
    $ brew install tomcat
    

    起動して localhost の 8080 にアクセスしてみましょう。

    $ catalina start
    

    Eclipse への Tomcat 登録

    インストールした Tomcat を Eclipse から操作できるように設定します。

    ランタイム環境の追加

    Eclipse 環境設定の Server → Runtime Environments で Add をクリックします。

    インストールした Tomcat のバージョンを指定して Next をクリックします。

    Tomcat installation directory と JRE を設定して Finish をクリックします。まだ Tomcat をインストールしていない場合は、本ウィンドウで Eclipse 内から Download and Install することもできます。後述の「サーバー」ビュー内でサーバーをダブルクリックして開くと、「サーバー・ロケーション」という項目で Tomcat が存在するフォルダを確認できます。

    追加されると一覧に表示されます。

    サーバーの新規追加

    追加したランタイム環境を利用するサーバーを新規追加します。待ち受けるポート番号などを設定します。File → New → Other → Server → Server をクリックします。

    Server type 一覧から、インストールした Tomcat のバージョンを選択します。Server's host name はそのままでよく、Server name を適宜変更します。また、Server runtime environment は先程追加したものを選択します。

    Finish を押すとサーバーが追加されたことが確認できます。

    ポート番号を変更するためには Servers ビュー内の my_server_8080 をダブルクリックします。同じ「Overview」タブ内では、サーバー起動時のタイムアウト時間も既定値の 45 秒から変更できます。パス名を既定値から変更するためには「modules」タブを開いて編集します。

    サンプルアプリケーションの作成

    登録したサーバー上で動作させるための Servlet コンテナで動くサンプルアプリケーションを作成します。

    プロジェクトの作成

    File → New → Projects → Web → Dynamic Web Project を選択して Next をクリックします。

    Project name に MyWebApp と入力して Next をクリックします。

    何も変更せずに Next をクリックします。

    Generate web.xml deployment descriptor にチェックを入れて Finish をクリックします。

    アプリケーションコードの追加

    Servlet

    プロジェクト内で右クリックして New → Servlet をクリックします。

    Java package と Class name を入力して Finish をクリックします。

    プロジェクトに追加されたことを確認します。

    JSP

    同様に JSP File を追加します。

    ファイル名を指定します。

    body に適当な文字列を追記します。

    ビルドパスの追加

    追加した Servlet コードの雛形内で使用されているクラスを定義する JAR が参照できないため、初期状態では Problems ビューなどでエラーが確認できます。これを解消するために、インストールした Tomcat の JAR をビルドパスに追加します。個人開発であれば、プロジェクトを右クリックして Properties から追加すればよいです。Java Build Path の Libraries にある Add External JARs をクリックして jsp-api.jarservlet-api.jar を追加します。macOS の場合は事前に Finder で「移動」→「フォルダへ移動」で /usr/local/Cellar/tomcat/8.0.35/libexec などに移動して、サイドバーに lib をショートカット登録しておくと選択できます。

    追加されてエラーが解消したことを確認します。

    ただし war ファイルを生成する際などには、上記 JAR 二つは含まれないことに関する警告が出ています。

    また、複数人での開発時には、メンバー間で異なるパスに Tomcat をインストールした場合に .classpath をレポジトリに含めていると不都合が発生することにも注意します。

    $ cat .classpath 
    <?xml version="1.0" encoding="UTF-8"?>
    <classpath>
    <classpathentry kind="src" path="src"/>
    <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8">
    <attributes>
    <attribute name="owner.project.facets" value="java"/>
    </attributes>
    </classpathentry>
    <classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.web.container"/>
    <classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.module.container"/>
    <classpathentry kind="lib" path="/usr/local/Cellar/tomcat/8.0.35/libexec/lib/jsp-api.jar"/>  ← 絶対パス
    <classpathentry kind="lib" path="/usr/local/Cellar/tomcat/8.0.35/libexec/lib/servlet-api.jar"/>  ← 絶対パス
    <classpathentry kind="output" path="build/classes"/>
    </classpath>
    

    サーバーでの動作確認

    プロジェクトを右クリックして Run As → Run on Server をクリックします。

    my_server_8080 選択して Always use this server when running this project にチェックを入れてから Finish をクリックします。

    他のブラウザまたは Eclipse 内の地球儀のアイコンをクリックして URL を適切に入力するとサンプルアプリケーションが動作していることが確認できます。

    突然起動しなくなったとき

    とりあえず以下の操作で状態を初期化してみます。また、不要なプロジェクトは右クリックして「Close Project」で閉じておきます。ビルド時などにおいて、処理されずに無視されるようになります。

    1. すべてのプロジェクトで右クリック → Refresh
    2. Alt + F5 で Update Maven Project (Maven プロジェクトの場合)
    3. Project → Build All
    4. サーバーを右クリック → Clean → OK
    5. サーバーを右クリック → Clean Tomcat Work Directory

    複数のサーバーを起動した場合

    「コンソール」ビュー内のボタンを押すと、ログを閲覧したいサーバーを切り換えることができます。

    0
    詳細設定を開く/閉じる
    アカウント プロフィール画像 (本文下)

    インフラ構築と自動化が得意。TerraformとAnsibleでインフラを自動構築するお仕事が多め

    記事の執筆者にステッカーを贈る

    有益な情報に対するお礼として、またはコメント欄における質問への返答に対するお礼として、 記事の読者は、執筆者に有料のステッカーを贈ることができます。

    さらに詳しく →
    ステッカーを贈る コンセプト画像

    Feedbacks

    Feedbacks コンセプト画像

      ログインするとコメントを投稿できます。

      関連記事

      • Spring Security フォームログインのサンプルコード
        Spring フレームワークによる Web アプリケーション開発で、ログイン処理を実装する際は Spring Security が便利です。ここでは特に Spring Boot で Web アプリケーションを開発する場合を対象とし、フォームによる ID/Password ログインを行うためのサンプルコードをまとめます。 公式ドキュメント [Spring Security チュートリアル](http...
        えびちゃんえびちゃん12/4/2019に更新
        いいねアイコン画像0
      • Java配列の宣言方法 (C/C++との違い)
        Javaの配列 Javaの配列宣言方法はC/C++と似ているようで若干異なる。 初期化しない場合 C/C++の int array[10]; はJavaでは int array[] = new int[10]; となる。同様にC/C++の int array[3][3]; はJavaでは int array[][] = new int[3][3]; となる。 初期化
        てんとうむしてんとうむし5/13/2018に更新
        いいねアイコン画像0
      • PlantUML による UML 図の描き方
        サムネイル画像-c788fffde5
        PlantUML はテキスト形式で表現されたシーケンス図やクラス図といった UML (Unified Modeling Language) 図の情報から画像を生成するためのツールです。簡単な使い方をまとめます。 インストール方法の選択 Atom や Eclipse のプラグインをインストールしてエディタから利用する方法、JAR をダウンロードして Java コマンドで実行する方法、Redmine ...
        kentakenta1/21/2020に更新
        いいねアイコン画像0
      • Akka HTTP サンプルコード (Scala)
        サムネイル画像-a98142497c
        Akka アクターを用いて実装された汎用 HTTP フレームワークです。Spray の後継です。コアモジュールである akka-http-core は 2016/2/17 に experimental が外れました。akka-http などのいくつかのサブモジュールは 2016/3/1 現在 experimental のままですが、基本的な
        雄太雄太10/7/2021に更新
        いいねアイコン画像0
      • Kestrel の使用例
        Kestrel は Message Queue (MQ) の実装のひとつです。一般に MQ はアプリケーション間やプロセス間、スレッド間で非同期に通信するために用いられます。メッセージの送信側は MQ に書き込めば受信側の応答を待たずに次の処理に非同期に進むことができます。Kestrel はわずか 2500 行程の Scala で実装されており JVM で動作します。MQ 自体はメモリ上に存在する...
        したくんしたくん10/12/2017に更新
        いいねアイコン画像0