SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

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

EclipseでAWSアプリを作成してみよう〜AWS Toolkit for Eclipseプラグイン

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

AWS Java Webアプリケーションの作成と動作確認

 早速、手順に従って作業を進めていきましょう。本節では、手順の1と2、すなわち、プロジェクトの作成とローカルでの動作確認を行っていきます。

AWS Java Webプロジェクトの作成

 第6回で解説したように、JavaのWebアプリケーションは、WARファイル構成を基本としています。これは、AWSでも例外ではありません。何より、Elastic BeanstalkのJava Webアプリケーションは、その実行環境としてTomcatを利用するので、warファイルをデプロイします。ということは、Tomcatプロジェクトでも、動的Webプロジェクトでも、warファイルを生成すれば、Elastic Beanstalk上で実行できそうですが、実は、WARファイル構成以外にも必要なファイル類があります。

 それらも含めて適切なプロジェクトを作成してくれる機能が、AWS Toolkit for Eclipseにはあります。それを利用していきます。なお、パースペクティブとしては、Java EEパースペクティブが推奨されています。ツールバーに追加されたアイコンの▼をクリックしてください。図6のドロップダウンメニューが表示されます。

図6: AWS Toolkitのメニュー
図6: AWS Toolkitのメニュー

 表示されたメニューから[新規AWS Java Webプロジェクト]を選択してください。すると、図7の新規AWS Java Webプロジェクト画面が表示されます。

図7: 新規AWS Java Webプロジェクト画面
図7: 新規AWS Java Webプロジェクト画面

 以下の内容を入力、選択し、[完了]をクリックしてください。なお、入力内容に関して少し補足しておきます。AWS Java Webプロジェクトは、Mavenというビルドツールを使用します。このMavenは、アプリケーションを作成する団体、企業、グループを特定するためのIDを、Javaのパッケージ形式をベースに設定するようにしています。通常、これはそのグループのドメインを逆にしたものをベースに採用します。

 また、プロジェクトを特定するための文字列を、アーティファクトIdとして指定し、このグループIDとアーティファクトIdをつなげて、そのプロジェクトのルートパッケージとするようにしています。

  • グループID: com.example.eclipse
  • アーティファクトId: firstawsjava
  • バージョン: 1.0.0(自動入力済み)
  • パッケージ名: com.example.eclipse.firstawsjava(自動入力済み)
  • プロファイルの選択: default(自動選択済み)
  • Start from: Basic Amazon Elastic Beanstalk Worker Tier Applicationを選択

 [完了]をクリックすると、初回はプロジェクトのビルドに必要なさまざまなライブラリ類をダウンロードするので、少々時間がかかります。無事プロジェクトが作成されたら、プロジェクトエクスプローラー上にfirstawsjavaフォルダが生成されます(図8)。

図8: 作成されたfirstawsjavaプロジェクト
図8: 作成されたfirstawsjavaプロジェクト

HelloServlet.javaの作成

 次に、このプロジェクト内に、「HelloWorld!」と画面に表示させるサーブレットを作成していきます。ただ、プロジェクトを作成したデフォルトの状態では、すでに、WorkerServlet.javaというサーブレットが存在し、どのURLでアクセスしてきても、このサーブレットが動作するようになっています。そこを修正します。

 プロジェクトエクスプローラーから[デプロイメント記述子:firstawsjava]をダブルクリックします。このファイルは、実体がsrc/main/webapp/WEB-INF/web.xmlなので、その内容が表示されます。現状は、図9のような記述になっています。

図9: 表示されたweb.xmlファイル
図9: 表示されたweb.xmlファイル

 このweb.xmlファイル内の記述を、リスト1のように、xml宣言とweb-appタグだけ残して、残りを削除します(図10)。

[リスト1]/firstawsjava/src/main/webapp/WEB-INF/web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app>
</web-app>
図10: 余分なものが削除されたweb.xmlファイル
図10: 余分なものが削除されたweb.xmlファイル

 これで、作成されたサーブレットファイルが、そのファイル内のコードにて設定されたURLで実行できるようになります。図11は、第6回第7回で利用したHelloServlet.javaと同じものを配置したプロジェクトです。

図11: HelloWorld.javaを追加したfirstawsjavaプロジェクト
図11: HelloWorld.javaを追加したfirstawsjavaプロジェクト

 これで、URLパターンが/helloで「HelloWorld!」と表示できる準備が整いました。

ローカルサーバでの動作確認

 ここで作成したfirstawsjavaプロジェクトを、ローカルサーバで実行させて動作確認を行いましょう。ローカルサーバとして、Elastic Beanstalkと同じTomcat 8.5を利用します。第7回を参考に、Tomcat 8.5サーバを追加し、そのサーバにfirstawsjavaプロジェクトを追加してください。追加が完了すると、サーバビューは図12のようになっています。

図12: 追加されたTomcat8.5サーバ
図12: 追加されたTomcat8.5サーバ

 早速サーバを起動して、動作確認を行いたいところですが、動的Webプロジェクトとは違い、たとえプロジェクトが同期済みになっていても、サーバにデプロイされた状態にはなりません。AWS Java Webプロジェクトでは、もう一手間、ビルドが必要です。

 現状、プロジェクトフォルダ内のtargetフォルダを見ると、図13のようになっています。

図13: プロジェクトを作成しただけのtargetフォルダ内
図13: プロジェクトを作成しただけのtargetフォルダ内

 m2e-wtpフォルダしかありません。プロジェクトのビルドを行うと、このtargetフォルダ内にwarファイルが生成されます。そのwarファイルがローカルサーバと同期する仕組みとなっています。そのビルドは、プロジェクトフォルダを右クリックして表示されるメニューから
[実行] > [Maven install]
を選択します(図14)。

図14: ビルドは[Maven install]を選択
図14: ビルドは[Maven install]を選択

 すると、targetフォルダ内は図15のようになり、今までなかったwarファイルが生成されているのが確認できます。

図15: 生成されたwarファイル
図15: 生成されたwarファイル

 これで、準備が整いました。ローカルサーバを起動し、ブラウザから以下のURLにアクセスしてください。

 ブラウザに「HelloWorld!」と表示されます。なお、AWS Java Webプロジェクトは、図11でも確認できるように、src/main/webapp直下に、同じく「HelloWorld!」と表示されるindex.jspがデフォルトで生成されています。

 warファイルでは、このindex.jspは、アプリケーション直下に格納されるようになっています。そのため、以下のコンテキストルートだけのURLでも「HelloWorld!」と表示されるようになっています。

次のページ
Elastic Beanstalkアプリケーションの作成と動作確認

この記事は参考になりましたか?

20年経ってもデファクトスタンダードIDEのEclipse入門連載記事一覧

もっと読む

この記事の著者

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

WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。 2026年時点での登録メンバは約50名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook <個人紹介>WINGSプロジェクト所属のテクニカルライター。Web系製作会社のシステム部門、SI会社を経てフリーランスとして独立。屋号はSarva(サルヴァ)。HAL大阪の非常勤講師を兼務。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

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

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるLaravel実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/14802 2021/09/22 11:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー