はじめに
JBossは、Javaコミュニティで長年使われてきたオープンソースのJ2EEアプリケーションサーバーです。そのJBossが、先ごろEclipseのおかげで新しいツールキットを手に入れました。このツールキットにより、JBossはいよいよ傍流から主流になるのではないかと思われます。
JBossはセキュリティ、ロードバランシング、クラスタリング、トランザクション機能などを備えており、その堅牢性と拡張性で常に高い評価を受けてきましたが、これまではGUIベースの統合開発環境(IDE)を持っていませんでした。そのため、市場のかなりの部分をIBM、BEA、Borlandといったクローズドソースのライバルたちの手に渡さざるを得ませんでした。しかしEclipseプロジェクトのおかげで、このほどJBossはEclipse開発フレームワークにプラグインできるIDEを手に入れました。このIDEの登場により、JBossはGUIを好む多数の開発者にも有力な選択肢として見てもらえるようになりました(もちろん、コマンドラインが好きな人は、引き続きコマンドラインツールを使用するようJBossを設定できます)。
JBossをサポートしているEclipseプラグインは既にいくつかありますが、このJBoss-IDEプラグインは最も簡単にインストール、アップデート、および使用することができます。JBoss-IDEプラグインは、サーバーの開始/停止、サーバーサイドコードのデバッグ、アーカイブファイルのパッケージ化と配備をサポートしています。さらに、XDocletコード生成もサポートしています。JBoss-IDEの最大の長所は、JBoss Application Serverの開発元であるJBoss Inc.が開発と保守と担当しているということです。
本稿では、JBoss-IDEプラグインのインストール方法と設定方法を説明し、単純なHello Worldアプリケーションを作成し、パッケージ化し、JBossサーバーに配備する手順を段階的に見ていきます。
JBoss-IDEプラグインのインストール
Eclipseプラグインの多くはZIPファイルとしてパッケージ化されており、それをダウンロードして、Eclipseのプラグインディレクトリに直接解凍します。しかし、JBoss-IDEはEclipseの組み込みのアップデート管理機能を使用しており、初回インストールを簡単に行えるほか、以降のアップデートをさらに簡単に行えるようになっています。
Eclipse 2.x
- [Help]→[Software Updates]→[Update Manager]を選択します。
- [Feature Updates]ビュー内で右クリックし、[New]→[Site Bookmark]を選択します。
- ブックマーク用の未使用の名前を選択し、http://jboss.sourceforge.net/jbosside/updates にブックマークを設定します。
- 追加されたブックマークを展開し、[JBoss-IDE 1.0/Eclipse 2.1]を選択します。
- プラグインの使用可能なバージョンが表示されます。最新のバージョンを選択します。
- Eclipseを再起動するよう要求されます。
Eclipse 3.x
- [Help]→[Software Updates]→[Find and Install]を選択します。
- [Search for new features to install]を選択します。
- [Add Update Site]をクリックします。
- アップデートサイト用の未使用の名前を選択し、http://jboss.sourceforge.net/jbosside/updates にブックマークを設定します。
- 追加されたアップデートサイトを展開し、[JBoss-IDE 1.0/Eclipse 3.0]を選択します。
- プラグインの使用可能なバージョンが表示されます。最新のバージョンを選択します。
- Eclipseを再起動するよう要求されます。
トップメニューにボタンを追加する
JBoss-IDEプラグインには、サーバーを開始、停止、中断するためのボタンや、サーバーコンソールやログファイルを表示するためのボタンが用意されています。これらのボタンは、デフォルトサーバーとして定義した1つのサーバー上でのみ機能します。デフォルトサーバーの設定方法については後述します。ここでは、これらのボタンをツールバーに表示する方法を説明します。
Eclipse 2.x
- トップツールバーを右クリックします。
- [Customize Perspective]を選択します。
- [Other]を展開します。
- [Default Server]チェックボックスをオンにします。
- [OK]をクリックします。
Eclipse 3.x
- トップツールバーを右クリックします。
- [Customize Perspective]を選択します。
- [Commands]を選択します。
- [Available Command Groups]ペインの中で[Default Server]チェックボックスをオンにします。
- [OK]をクリックします。
サーバーの設定と起動
JBossサーバーをここからダウンロードしてください。
JBossサーバーを起動するには、デバッグ設定を作成する必要があります。JBossをデバッグ設定の中で実行すると、サーバーコード内でブレークポイントを設定して使用することができます。[Run]→[Debug]を選択すると、左側のペインにJBossに関する新しい設定がいくつか表示されるはずです。現在実行しているJBossのバージョンに一致するものをクリックします。右側の[Debug]オプションでは、JBossサーバーを起動したときにEclipseをどのパースペクティブに切り替えるかを定義できます。私の場合は、サーバーの起動時にEclipseのパースペクティブを切り替えたくないので、[Debug]を[None]に変更しています。
パースペクティブを定義したら、[New]をクリックして、JBoss設定の新規インスタンスを作成します。新しい設定に名前を付け、JBossサーバーのホームディレクトリを指すようにします(図1参照)。
[Close]をクリックした後で、[Window]→[Preferences]→[JBoss IDE]→[Launcher]を選択します。先ほどトップツールバーに追加したボタンを使用可能にするために、デフォルトサーバーを指定する必要があります(図2参照)。
[OK]をクリックすると、トップツールバーに追加したボタンが使用可能になります。
サーブレットの作成
それでは、このプラグインを使用して単純な"Hello World!"サーブレットを作成し、JBossに配備してみましょう。
ソースコード(.javaファイル)はソースフォルダに格納し、コンパイル済みのクラス(.classファイル)は出力フォルダに格納します。次の手順に従って、ソースフォルダと出力フォルダを設定します(図3参照)。
- パッケージエクスプローラ内でプロジェクトを右クリックします。
- [Properties]→[Java Build Path]を選択します。
- [Source]タブをクリックします。
- [Add Folder]をクリックします。
- [Create New Folder]をクリックします。
- フォルダ名を「src」に設定します。
- ソースフォルダとしてのプロジェクトを削除して「bin」フォルダを作成するかどうかを尋ねられたら、[Yes]を選択します。
次に、Eclipseがコードをコンパイルするときに使用するライブラリ(JARファイル)を定義して、CLASSPATHを設定する必要があります。さらに、サーブレットをコンパイルするためのJARファイルを追加します。幸い、EclipseにはTomcatプラグインが装備されており、このプラグインに、サーブレットをコンパイルするのに必要なライブラリが含まれています。
そして、次の手順を行います(図4参照)。
- [Libraries]タブをクリックします(ここでは引き続き、[Properties]→[Java Build Path]を選択したときに表示される画面を使用します)。
- [Add Variable]をクリックします。
- ECLIPSE_HOMEを選択し、[Extend]をクリックします。
- 「plugins/org.eclipse.tomcat.4.1.x」ディレクトリに進みます。
- 「servlet.jar」を選択し、[OK]をクリックします。
- [OK]をクリックし、プロパティダイアログを閉じます。
次は、サーブレット内で下記のコードを使用して、com.devx.example
パッケージ内にHelloWorldSerlvet
というクラスを作成します。
package com.devx.example; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class HelloWorldServlet extends HttpServlet { protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { ServletOutputStream out = response.getOutputStream(); out.println("<html><body><h1>Hello World!</h1></body></html>"); } }
このサーブレットへのアクセス方法をJBossに教えるには、配備記述子を用意する必要があります。配備記述子(web.xml)は、.warファイル内のWEB-INFというフォルダに配置します。「src」フォルダの下に「WEB-INF」フォルダを作成します。その後、このフォルダ内に下記のソースを含んだ「web.xml」ファイルを作成します。
<!DOCTYPE web-app PUBLIC '-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN' 'http://java.sun.com/j2ee/dtds/web-app_2.2.dtd'> <web-app> <servlet> <servlet-name>HelloWorldServlet</servlet-name> <servlet-class>com.devx.example.HelloWorldServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>HelloWorldServlet</servlet-name> <url-pattern>/Hello</url-pattern> </servlet-mapping> </web-app>
ここまでの作業を終えると、プロジェクト構造は図5のようになります。
セットアップとパッケージ設定
このアプリケーションをJBossに配備する前に、パッケージ設定を通じてWARファイルの構造を定義する必要があります。このパッケージ設定を実行して、WARファイルを作成します。
パッケージ設定を作成するには、次の手順を行います。
- パッケージエクスプローラ内でプロジェクトを右クリックします。
- [Properties]→[Packaging Configurations]を選択します。
- 右のフレーム内を右クリックし、[Add Std. Archive]をクリックします。
- 「Standard-WAR.war」を選択し、[OK]をクリックします。
- 設定を右クリックし、[Edit]をクリックします。
- 名前を「helloworld.war」に変更します。
- その設定を展開します。
- Manifest.MFの行を右クリックし、この行を削除します。
- 設定が図6のようになっていることを確認します。
[OK]をクリックすると、プロジェクト内に「packaging-build.xml」というファイルができます。
WARファイルの作成と配備
WARファイルを作成するには、プロジェクトを右クリックして[Run Packaging]をクリックします。作成されたWARファイルを確認するには、プロジェクトを右クリックして[Refresh]をクリックする必要があります。このファイルはプロジェクトの最上位レベルに作成されます。
WARファイルを右クリックし、[Deployment]を選択し、[Deploy To]を選択します。図7のような[Target Choice]ダイアログが表示され、配備先のアプリケーションサーバーを選択することができます。
私は自分のマシン上でJBoss 3.2.2とJBoss 3.2.3を稼働しているので、両方のサーバーを使用できます。配備先を選択すると、配備するアプリケーションを確認するためのダイアログが表示されます。
それでは、実際にWebブラウザを起動して、このアプリケーションを試してみましょう。http://localhost:8080/helloworld/Helloにアクセスすると、図8のようなページが表示されます。
本稿では、Eclipse内にJBoss-IDEプラグインをインストールする方法と、JBossサーバーを設定し、単純なアプリケーションをパッケージ化してJBossサーバーに配備する方法を解説しました。いずれまた、本稿の続編としてJBoss-IDEプラグインのXDoclet機能の使い方を説明する予定ですのでご期待ください。