連載
» 2003年12月06日 00時00分 公開

Strutsを使うWebアプリケーション構築術(1):フレームワーク・プログラミングの準備 (2/2)

[山田祥寛,@IT]
前のページへ 1|2       

Strutsの動作に必要なもの

 さて、それではいよいよStrutsアプリケーションを構築するための準備に取り掛かるとしましょう。Strutsアプリケーションを開発するに当たっては、最低限、以下のソフトウェアが必要となります。

  • J2SE(Java2 Software Development Kit, Standard Edition)
    Javaアプリケーション開発の基本的なツール、および実行環境を提供します。Java仮想マシンをはじめ、コンパイラ(javac)、ドキュメント生成エンジン(javadoc)、エンコーディングユーティリティ(native2ascii)などを含みます。Strutsもまたサーバサイドで動作するJavaアプリケーションですので、まずはこのJ2SEをサーバ上にインストールしておく必要があります。本稿では2003年12月時点での最新安定版1.4.2_01を採用することにします。

  • サーブレットコンテナ
    Strutsは「サーブレット」技術をベースにおくアプリケーション・フレームワークです。実行に際しては、サーブレットを動作させるための実行エンジン(コンテナ)を必要とします。サーブレットコンテナは有償・無償を含め、いろいろなものが提供されていますが、本稿では無償で利用でき、かつ、Struts同様、Jakartaプロジェクトから提供されているTomcatを利用することにします(2003年11月時点の最新安定版は4.1.27)。一般的には、サーブレットコンテナはユーザーからのリクエスト処理を制御するWebサーバと連携して動作しますが、Tomcatには簡易なWebサーバとしての機能も実装されています。本稿では環境設定の煩雑さを避けるために、Apacheなど外部のWebサーバを立てるのではなく、Tomcat内蔵のWebサーバ機能をそのまま利用することにします。

  • データベースサーバ
    データベースサーバの活用は、Strutsアプリケーションにとって必須の要件ではありません。しかし、大量のデータを高速かつ堅牢に管理するデータベースサーバの存在は、アプリケーションの実現可能性を大きく拡大する要因の1つといってよいでしょう。データベースサーバにも商用のものからフリーのものまで、あるいは業務用からパーソナル用途のものまでさまざま存在しますが、本稿では個人用途にはフリーで使用でき、かつパフォーマンスにも定評があるMySQLを採用することにします(2003年12月時点の最新安定版は4.0.16)。MySQLとの連携に際しては、接続のインターフェイスを提供するJDBCドライバ(Connector/J)を併せてサーバにインストールする必要があります。

  • Struts
    そして、忘れてはならないStrutsフレームワークです。Strutsは、カスタムタグライブラリやアクションサーブレット、そのほか、さまざまなクラスライブラリの集合体です。本稿では、2003年11月時点での最新安定版1.1を採用することにします。

 これらのソフトウェアの関連を図示すると以下のようになります。

関連ソフトウェアの役割分担 関連ソフトウェアの役割分担

 なお、本稿ではJ2SE、Tomcat、MySQLのインストール方法については割愛することにします。これらのインストール方法の詳細については、Java Solution「基礎から学ぶサーブレット/JSP “第3回 サーブレット/JSPの開発環境を作る”」、または筆者のサイト「サーバサイド技術の学び舎 - WINGS」より「サーバサイド環境構築設定」を参照してください。

Strutsフレームワークをインストールする

 ということで、本稿では純粋なStrutsフレームワークのインストール部分に絞って、手順を紹介していくことにしましょう。環境はWindows 2000を例に取るものとしますが、そのほかのOS環境においても、大まかな手順は同じです。パスなど環境依存の部分のみを適宜読み替えてください。また、以下ではTomcatのインストールフォルダ(例えば「C:\Program Files\Apache Group\Tomcat 4.1」)を「%CATALINA_HOME%」と表記することにします。

(1)「 Struts 」フレームワークのアーカイブを入手する

 Strutsは日々小まめにバージョンアップが重ねられていますので、その時々の最新安定版(Stable)を利用するようにしてください。2003年11月時点での最新安定版は1.1です。「.zip」または「.tar.gz」の形式で公開されています。

(2)ダウンロードファイルを解凍する

 ダウンロードファイル「jakarta-struts-X.X.zip(X.X はバージョン番号)」を解凍してできた「jakarta-struts-X.X/lib」フォルダ配下の必要ファイルを、Tomcatのアプリケーションフォルダ「%CATALINA_HOME%\webapps」配下にコピーします。

 コピーすべきファイルとアプリケーションフォルダ配下のコピー先の対応は、以下のとおりです。この例では、アプリケーション名(アプリケーションルート)は「Struts」であるものとします。

Struts 関連ファイルのコピー先
対象ファイル コピー先(/webapps/アプリケーション名)
*.jar %CATALINA_HOME%/webapps/struts/WEB-INF/lib/
*.tld %CATALINA_HOME%/webapps/struts/WEB-INF/
validator-rules.xml %CATALINA_HOME%/webapps/struts/WEB-INF/

 「.jar」ファイルはStruts本体のほか、Strutsで使用するクラスライブラリやタグライブラリを含みます。「.tld」ファイルはJSPファイルの中で使用可能なStrutsタグライブラリの情報を含むタグライブラリ・ディスクリプタ(記述子)です。validator-rules.xmlはStruts内で検証機能を利用する場合に必要となる検証情報ファイルです。

 「.tld」ファイルとvalidator-rules.xmlについては、必ずしも上記のフォルダに限らず、「/WEB-INF」フォルダ配下の任意のサブフォルダに配置することも可能です。特に「.tld」ファイルは複数ありますので、「/WEB-INF」フォルダ配下にいくつものファイルが散在するのが気持ち悪いという場合には、「/WEB-INF/tld」などのフォルダを作成して、その中に配置することをお勧めします(その場合は、後述するコンフィグレーションファイルの記述も変更する必要がありますので、注意してください)。

(3)コンフィグレーションファイルを作成する

 Strutsアプリケーションはその動作の大半を、このコンフィグレーションファイル(設定ファイル)によって制御します。ファイル名は任意に決めることができますが、本稿ではデフォルトで定められたtruts-config.xmlとしておくことにします。

<?xml version="1.0" encoding="Shift_JIS" ?>
<!DOCTYPE struts-config PUBLIC
          "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN"
          "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
<struts-config>
  <data-sources></data-sources>
  <form-beans></form-beans>
  <global-exceptions></global-exceptions>
  <global-forwards></global-forwards>
  <action-mappings></action-mappings>
</struts-config>

 ここで記述するのは、struts-config.xmlのスケルトン(骨組み)だけです。これが最低限の記述であると思っておけばよいでしょう。なんら有効な情報は含まれません。それぞれの要素の意味については、また、これらが実際に使用されるときに紹介することにしましょう。struts-config.xmlは、一般的に「/WEB-INF」フォルダ配下に保存します。

(4)デプロイメント・ディスクリプタを作成する

 デプロイメント・ディスクリプタはJSP&サーブレット標準の設定ファイルです。必ず「/WEB-INF」フォルダの直下に保存してください。ファイル名はコンテナに依存しますが、Tomcatにおいては「web.xml」になります。

 Strutsアプリケーションを作成するに当たっては、このデプロイメント・ディスクリプタに対して、いくつかの設定を施しておく必要があります。

<?xml version="1.0" encoding="Shift_JIS" ?>
<!DOCTYPE web-app
    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
    "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
  <servlet>
    <servlet-name>action</servlet-name>
    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
    <init-param>
      <param-name>config</param-name>
      <param-value>/WEB-INF/struts-config.xml</param-value>
    </init-param>
    <load-on-startup>2</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>action</servlet-name>
    <url-pattern>*.do</url-pattern>
  </servlet-mapping>
  <taglib>
    <taglib-uri>/tags/struts-bean</taglib-uri>
    <taglib-location>/WEB-INF/struts-bean.tld</taglib-location>
  </taglib>
  <taglib>
    <taglib-uri>/tags/struts-html</taglib-uri>
    <taglib-location>/WEB-INF/struts-html.tld</taglib-location>
  </taglib>
  <taglib>
    <taglib-uri>/tags/struts-nested</taglib-uri>
    <taglib-location>/WEB-INF/struts-nested.tld</taglib-location>
  </taglib>
  <taglib>
    <taglib-uri>/tags/struts-logic</taglib-uri>
    <taglib-location>/WEB-INF/struts-logic.tld</taglib-location>
  </taglib>
  <taglib>
    <taglib-uri>/tags/struts-tiles</taglib-uri>
    <taglib-location>/WEB-INF/struts-tiles.tld</taglib-location>
  </taglib>
</web-app>

 ほとんど決まりきった設定だと思っておけばよいでしょう。<servlet>、<servlet-mapping>要素はStrutsアプリケーションで共通して使用するアクションサーブレット(第2回以降後述)を有効化します。初期化パラメータとして、ここではアクションサーブレットの動作時に参照するコンフィグレーションファイルのパス(ファイル名)を指定しています。

 <taglib>要素は、Strutsアプリケーション内で使用するStrutsタグライブラリのタグライブラリ・ディスクリプタ(記述子)のパスと呼び出しのURIとの関連付けを行います。Struts開発において、必ずしもすべてのタグライブラリが必須であるというわけではありませんが、ここでは使用する可能性のあるタグライブラリをすべて有効にしておきます。

 いずれも本稿の設定に基づいてパスを記述していますが、もしも「(3)コンフィグファイルを作成する」や「(4)デプロイメント・ディスクリプタを作成する」で異なるパス、またはファイル名で保存した場合には、適宜、読み替えるのを忘れないようにしてください。

(5)環境変数を設定する

 Strutsアプリケーションで必要なクラスファイルをコンパイルするには、CLASSPATHをはじめ、いくつかの必要な環境変数を設定しておく必要があります。設定内容は以下のとおりです。

環境変数の設定
環境変数 設定値
PATH .;%JAVA_HOME%\bin;C:\mysql\bin
JAVA_HOME C:\j2sdk1.4.2_01
CATALINA_HOME C:\Program Files\Apache Group\Tomcat 4.1
CLASSPATH %CATALINA_HOME%\common\lib\servlet.jar;
%CATALINA_HOME%\webapps\struts\WEB-INF\classes;
%CATALINA_HOME%\webapps\struts\WEB-INF\lib\struts.jar;
%CATALINA_HOME%\webapps\struts\WEB-INF\lib\commons-*.jar;

 「commons-*.jar」は、実際には「commons-fileupload.jar」のように各ファイル名に展開してください。以上でStrutsの環境設定は完了です。

 次回からはいよいよStrutsアプリケーションを、今回構築した環境上で動かしてみることにしましょう。なお、第2回以降の内容はJSP&サーブレットの基本的な理解が前提となります。JSP&サーブレットの基本的な構文や概念については、Java Solution「基礎から学ぶサーブレット/JSP」を参考にしてください。


前のページへ 1|2       

Copyright© 2017 ITmedia, Inc. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。