
連載 Eclipseを使おう!(3)
EclipseでTomcatを使ったJ2EE開発を行う
金子崇之(NTTデータ ビジネス開発事業本部)
岡本隆史(NTTデータ 技術開発本部)
2003/2/14
|
今回の内容
|
前回まででEclipseの基本的な使用方法を紹介しました。「私もJava開発にEclipseを活用してみよう!」と思われた方も多いのではないでしょうか。しかしサーバサイドJavaであるJ2EE開発に対して、Eclipse単体では特別な機能はなく、世の中に出回っている多くのアプリケーションサーバとの連携機能もありません。
しかしEclipseの特徴の1つに「豊富なプラグインによる機能拡張」というのが挙げられます。今回はEclipseのプラグインのうち、Lombozプラグインを使用したWebアプリケーションの開発方法を紹介します。LombozプラグインはTomcat、JBoss、WebLogicに対応しています。今回はServletコンテナとしてTomcatを使用します。
なお今回の記事は以下のバージョンのソフトウェアで記述しています。原稿執筆時で可能な限り最新版を使用しています。
| ソフトウェア | バージョン |
| OS | Windows XP |
| JDK | 1.4.1_01 |
| Tomcat | 4.1.12 |
| Eclipse | 2.0.2 |
| Eclipse SDK Translations | 2.0.1 |
| Lombozプラグイン | 0.96 |
| Jasper Debug Patch | 4.1.12 |
| Lombozプラグインとは |
LombozプラグインはJ2EE開発のためのプラグインで、以下のような機能を持ちます。
- HTMLタグやJSPキーワードのハイライト表示やコードアシスト、スクリプトレット内のJavaコードアシスト機能を備えたJSPエディタ
- JSP文法チェック
- ウィザードによるWebアプリケーション、EJBアプリケーションの作成
- ウィザードによるEJBテストクライアントの新規作成
- Web Application aRchive(WAR)ファイルとEJB archive(Jar)ファイルのデプロイ
- XDoclet(http://xdoclet.sourceforge.net/)を使用したEJBの開発
- コンテナ(Tomcat、WebLogic、JBoss)上でのデバッグ
2003年5月現在ではEclipse2.1対応のLomboz2.1_02がhttp://www.objectlearn.com/から、Eclipse2.0.2対応のLomboz0.97がhttp://sourceforge.net/projects/lombozから入手できます。
今回はEJBの開発に関しては触れません。またLombozプラグインのヘルプファイルはSourceForge(http://sourceforge.net/projects/lomboz)から入手できます。
| Tomcatのインストール |
TomcatとはJakartaプロジェクト(http://jakarta.apache.org/)で公開されているServletコンテナのリファレンス実装で、ServletやJSPを動作させることができます。今回はTomcat 4.1.12を使用します。なおTomcatのインストール前にJDKをインストールしておいてください。
|
1.Tomcatの入手 2.環境変数の設定 3.Tomcatのインストール 4.web.xmlの修正
5.Tomcatの起動確認 |
|
コラム:Windows-31Jの使用
|
||||||||||
今まで、Windows環境で使うJava(JSP)コードでは、雑誌やWebの紹介記事でShift_JISが使われていたこともあり、殆どのケースでShift_JISを利用していたと思います。ここでエンコーディング名としてWindows-31Jを使う理由は、Shift_JISの扱いが、J2SDK
1.4.1のリリースを境に変更になっているからです。
つまり、システムを構築する際に、Shift_JISは使わない方が安全です。将来、J2SDKのバージョンを変更したときに、不具合が出る可能性があります。詳細は、http://www.ingrid.org/java/i18n/encoding/shift_jis.htmlをご覧ください。 |
||||||||||
|
コラム:TomcatのJSP文字コードの扱い
|
||||
web.xmlの設定は、いったんメモリ上に取り込まれた文字列をJavaソースに書き出す際の文字エンコーディングの指定です。JSPファイルから文字列を読み込む際の文字エンコーディングも併せて指定する必要があります。そのためには作成する各JSP上に以下のタグを記述する必要があります。
pageEncodingはJSPから文字列を読み込む際の文字エンコーディングの指定、contentType内のcharset はブラウザに対する文字エンコーディングの指定です。web.xmlでのjavaEncodingの指定と合わせて整理すると、下図のようになります。
|
||||
| Lombozプラグインのインストール |
lomboz.096.zipファイルを入手しインストールしてください。インストールはファイルを展開し、C:\eclipse\plugins ディレクトリにコピーするだけです。
■Lombozプラグインの設定
EclipseでLombozプラグインを使用するために、以下の設定を行います。
- ツールバーにLomboz用のアイコンを表示
「ウィンドウ」→「パースペクティブのカスタマイズ」→「その他」を展開→「Lomboz Actions」にチェックを付けます。
- Tools.jarの場所を指定
「ウィンドウ」→「設定」→左ペインで「Lomboz」を選択→「JDK Tools.jar」にtools.jarの場所を指定します。今回はC:\j2sdk1.4.1_01\lib\tools.jarを指定しました。
- フォルダの指定
「ウィンドウ」→「設定」→左ペインで「Java」を展開→「新規プロジェクト」を選択→「ソースおよび出力ロケーション」を「フォルダー」に設定します。テキストボックスの中は変更しないでください。
LombozプラグインをTomcatと連携させるため、以下の設定を行います。
- Tomcatの設定
「ウィンドウ」→「設定」→左ペインで「Lomboz」を展開→「Application Servers」を選択→「Tomcat」タブを選択します。「Tomcat」タブで以下の設定を行います。
・ 「Server Home Directory」:Tomcatのインストールディレクトリ(C:\Tomcat4.1)を指定します。
・ 「Version」:Tomcatのバージョンを指定します。「4.1.x」を選択します。
| Jasperデバッグパッチの適用 |
TomcatではJSPファイルからJavaソースファイルを生成する際、Webアプリケーションのルートに配置されたJSPファイルはorg.apache.jspパッケージに属するクラスとしてソースをworkフォルダに生成します。ルート配下のサブフォルダ内のJSPファイルは、Javaソースの出力先はサブフォルダ化されますがパッケージ名は同じなため、生成されたServletソースをEclipseで読み込むとエラーが発生してしまいます。
Tomcat LauncherのWebサイト(http://www.sysdeo.com/eclipse/tomcatPlugin.html)からJasperデバッグパッチjasperDebugPatchV4.1.12.zipを入手し、解凍したものをC:\Tomcat4.1\common\classesにコピーします。このパッチを当てると、JSPがサブフォルダ(sub)配下にあった場合には、org.apache.jsp.<サブフォルダ(sub)> というパッケージ名のJavaソースとして生成されます。
![]() |
| 画面1 パッチによる効果 |
| J2EEプロジェクトの作成 |
いよいよLombozプラグインを使用したWebアプリケーションの開発を始めます。まずはJ2EEプロジェクトを作成します。
| 1.「ファイル」→「新規」→「プロジェクト」→「Java」を展開→「Lomboz J2EE Wizards」→「Lomboz
J2EE Project」を選択→「次へ」をクリック 2.任意のプロジェクト名(今回はj2eePrj)を入力 3.Java設定では「次へ」をクリック 4.「Web Containers」タブを選択→「Add」をクリック→Webコンテナ名(今回はmyWeb)を入力 5.「Servers」タブを選択し→「Type」は「Tomcat」を選択 6.「終了」をクリック J2EEプロジェクトが作成されます。 |
j2eePrjの配下は以下のようなフォルダ、ファイル構成になっています。
| src | Javaソースを配置 |
| j2src | JSPをコンパイルしたServletソースが出力されるフォルダ |
| myWeb | Webコンテナとして作成したフォルダ |
| myWeb/WEB-INF | WARとして必要なweb.xmlファイルだけではなく、Lombozで使用するbuild.xml、servers.xmlも格納 |
| 必要なjarファイルのライブラリ登録 | servlet.jarとbootstrap.jarが追加 |
Lomboz(0.9.6)ではJSPのデバッグ時に必要となるjasper-runtime.jarが追加されません。以下の手順で追加します。
| 1.パッケージ・エクスプローラ上で「j2eePrj」を右クリック→「プロパティー」→左画面の「Javaのビルド・パス」を選択→「ライブラリー」タブを選択→「変数の追加」をクリック 2. 「TOMCAT4」を選択→「拡張」をクリック→「common/lib/jasper-runtime.jar」を選択→「OK」をクリック |
| JSPの作成/編集 |
JSPエディタを使用しJSPファイルを編集します。Webコンテナを作成すると自動的に生成されるindex.jspを編集してみましょう。
パッケージ・エクスプローラ上のindex.jspを開きます。するとJSPエディタが起動します。この状態ではまだHTMLタグに色が付いている程度です。
![]() |
| 画面2 JSPエディタによるHTMLタグのカラーリング |
現在時刻を表示させるように修正してみましょう。以下のコードを9行目に追加します。
| <%=new Date()%> |
最初の<を入力した時点で、JSPエディタの機能の1つであるコードアシストによってHTMLタグの一覧が表示されます。
![]() |
| 画面3 JSPエディタによるHTMLタグコードアシスト |
ここでは続けて%を入力します。すると背景色が変わり、スクリプトレット内であることを示してくれます。
最後まで入力し終えると、<%=から%>までの範囲に背景色が付きます。JSP用のタグはHTMLタグとは別の色で区別されています。
![]() |
| 画面4 JSPエディタ スクリプトレットのカラーリング |
保存すると、JSPエディタの左側、パッケージ・エクスプローラ、タスクにエラー情報が出ます。どうやらDateを名前解決できていないようです。
index.jspの2行目に、以下のコードを記述します。
| <%@ page import="java.util.Date"%> |
[Ctrl]+[space]をキー入力することで、JSPエディタのコードアシスト機能を使用することができます。<%@ まで入力したところ、pageまで入力したところで[Ctrl]+[space]を入力してみてください。その場に応じた候補が表示されます。
![]() |
| 画面5 JSPエディタ JSPタグのコードアシスト |
コード入力後、再度保存するとDateはjava.util.Dateとして解決され、エラーは消えます。このようにHTMLタグやJSPキーワードのハイライト表示やコードアシスト、保存時のエラー出力、またここでは紹介していませんが、スクリプトレット内のJavaコードにもコードアシストが行われ、JSPの編集作業が快適に行えます。
| Eclipse上でのTomcatの実行 |
続いてLombozプラグインからTomcatを起動します。その前にTomcatのserver.xmlを編集してWebアプリケーションを登録する必要があります。
server.xmlの適切な個所(例えば369行目付近)に以下の設定を追加します。
<Context path="/myWeb" |
パッケージ・エクスプローラで「myWeb」を右クリック→「Lomboz J2EE…」→「Debug Server」を選択します。するとTomcatが起動します。コンソールウィンドウ上に標準出力が表示されます。
ブラウザからhttp://localhost:8080/myWeb/にアクセスし、現在の日時が表示されることを確認してください。
|
Tomcat Launcherプラグイン
|
|
| 余談ですが、Tomcat Launcherプラグイン (http://www.sysdeo.com/eclipse/tomcatPlugin.html)を使用するとこのserver.xmlの編集をEclipse上のメニューから実行することができます。 |
| JSPのデバッグ |
LombozプラグインではJSPファイルを直接デバッグ実行することはできません。JSPをコンパイルして生成されたServletのJavaソースを使用してデバッグすることになります。
パッケージ・エクスプローラで「j2src」を右クリック→「最新表示」を選択してください。先ほどアクセスしたindex.jspをコンパイルして生成されたServletソース、index_jsp.javaが読み込まれます。
後はこのindex_jsp.java上でブレーク・ポイントを設定し、Webブラウザ上からアクセスするとEclipse上でデバッグ・パースペクティブに切り替わり、通常のJavaクラスと同様にデバッグ実行することができます。
| WAR化 |
LombozプラグインからTomcatを起動する場合、J2EEプロジェクトのビルド出力フォルダ(今回はC:\Eclipse\workspace\j2eePrj\bin)がクラスパスに追加されます。そのためsrc配下のクラスはEclipse上でビルドされていれば、WEB-INF/classesにクラスがなくてもJSPから使用することができます。
しかしこのままではEclipse上以外で起動するTomcatにWebアプリケーションを配布できません。そこで完成したWebアプリケーションをWARにするための機能がLombozプラグインには備わっています。
パッケージ・エクスプローラで、「myWeb」を右クリック→「Lomboz J2EE…」→「Deploy Container」を選択すると、C:\Tomcat4.1\webappsにWARファイル(今回はmyWeb.war)が生成されます。このWARはWEB-INF/classes内にコンパイル済みのクラスが配置されており、このままほかのマシンなどに配布することが可能です。
| まとめ |
Lombozプラグインを使用したWebアプリケーションの開発方法について、簡単に説明してきました。今回は紹介しませんでしたが、LombozではXDocletを使用したEJB開発機能があります。またTomcat以外にもWebLogicやJBossに対応しています。
J2EEに対する特別な機能を持っていないEclipseですが、プラグインにより快適に開発することができます。ここで紹介したLombozプラグインのほかにも、Tomcat LauncherやWebLogicプラグイン、そのほかさまざまなプラグインが続々と公開されています。以下のリスティングサイトから検索することができます。
数多くあるプラグインの中から自分のお気に入りを見つけ出し、自身の開発環境をどんどん改善していくことができるのもEclipseのメリットであり、楽しみの1つです。
| 筆者プロフィール |
| 金子 崇之(かねこ たかゆき) 現在、株式会社NTTデータ ビジネス開発事業本部に所属。技術支援グループとして、J2EEをベースにしたWebシステム開発プロジェクトを対象に、技術サポートを行っている。 特に、性能・信頼性といった方式技術を中心に活動中。 岡本 隆史(おかもと たかし) Debian GNU/Linuxの優れたメンテナンス性と他のディストリビューションを圧倒するパッケージ数に引かれDebianを使い始めたのをきっかけに、Debian プロジェクトの開発者となりJavaサポートの強化を行う。 『Jakartaプロジェクト徹底攻略』(技術評論社)、『WEB+DB PRESS』(技術 評論社)、『Java World』(IDGジャパン)、『JAVA Developer』(ソフトバンクパブリッシング)などで執筆活動を行っている。 |
Eclipseを使おう! バックナンバー
- 第1回 オープンソースのEclipseは仕事に使える開発環境
- 第2回 Eclipseの統合開発環境を使いこなす
- 第3回 EclipseでTomcatを使ったJ2EE開発を行う
| 「Eclipseを使おう!」連載記事一覧 |
TechTargetジャパン
- 並列分散処理の常識をHadoopファミリから学ぶ (2012/2/8)
並列分散処理の課題やHadoopの長所/短所、そして短所を補うHadoop関連プロジェクトの構成や概要などを簡単に紹介 - WebLogicサーバ最新版「12c」の気になる4つの特徴 (2012/1/31)
久々にメジャーアップグレードしたJavaアプリケーションサーバについて、製品担当者に軽量インストーラなどの特徴を聞いた - GitHubをもっとソーシャルに使いこなすための7つ道具 (2012/1/23)
ソースコードホスティングのGitHub周辺で便利な新サービスが続々登場しているので、まとめて紹介しよう。特に連動クラウド「fluxflex」が注目だ - 新キャラ登場!スクラムやるならRedmineとALMinium (2011/12/26)
「黒板を“かんばん”にしてたら先生に怒られた(T_T)」「管理はPC内でやればいいのよ」「承知しました」
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -






