Eclipse WTPとOracle Application Server 10gの連携

肥後 智彦日本オラクル株式会社
システム技術統括本部 - アライアンス技術本部 - ビジネスパートナーSC部
肥後 智彦

入社以来、現在に至るまで、パートナー企業向けにプリセールスを中心とした技術支援を担当。
Eclipseをお使いのJ2EEアプリケーション開発者の貴方。
是非、Oracle Application Server 10g をお試しください!

第1回:Eclipse + WTP + スタンドアロンOC4JでつくるJ2EE統合開発環境

今回は、統合開発環境(IDE)として多くのJ2EEアプリケーション開発者から支持を得ているEclipseと、弊社のJ2EEコンテナである「Oracle Application Server Containers for J2EE(OC4J)」を使用してJ2EE統合開発環境を構築し、簡単なJ2EEアプリケーションの開発・実行をおこなうまでの手順をご紹介します。

はじめに  

ここ数年、システム構築期間は短縮傾向にあり、生産性向上がスローガンとして掲げられるようになりました。現在、J2EEやWebシステムの開発において、IDEの使用はもはや欠かせないものといえるでしょう。現在Java/J2EE用のIDEは、オープンソースやフリーソフトから各ベンダー社製のものまで、かなりの数のものが存在します(オラクルもOracle JDeveloper 10gという製品を提供しています)。
その数多いJava/J2EE用のIDEのなかで多大な支持を得ている製品として「Eclipse」があります。Eclipseが高い人気を誇る理由は大きく4つあります。1つ目は、「オープンソースであり、無償で入手可能であること」です。2つ目は「軽快な動作」です。OSネイティブなAPIを使用するSWT(Standard Widget Toolkit)というGUIツールにより実現しています。3つ目は「プラグインの豊富さ、拡張性」です。すでに数多くの有償/無償プラグインが存在しますし、必要となれば自分でプラグインを開発し、追加できます。4つ目は、「多くのベンダーがコミュニティに参加しており、コミュニティの活動が活発であること」です。現在オラクルは、Eclipse Foundationの ” Strategic Developer and Board Member ” として活動しています。そこでは、Dali JPA Tools project、Java Server Faces Tools project、BPEL Tools projectという3つのプロジェクトでリーダーを務めています。また、Data Tools Platform(DTP)や、今回使用するWeb Tools Platform(WTP)においても貢献しています。加えて、Eclipse Foundationに対してOpen Source Persistence(EclipseLink)Projectを提案しています。

参考:http://www.oracle.com/corporate/press/2007_mar/OpenSource-TopLink.html

「Oracle Application Server Containers for J2EE」(以下、OC4J)は、弊社が提供しているアプリケーション・サーバー「Oracle Application Server 10g」で使用されているJ2EE準拠のコンテナです。2007年3月現在、最新版のOC4J 10g Release 3(10.1.3.1)では、多くの商用アプリケーション・サーバーがサポートするJ2EE 1.4仕様を始め、Java EE 5 (Java Platform Enterprise Edition, Version 5)仕様の一部であるEJB 3.0に、他の商用アプリケーション・サーバーに先駆けて準拠しています。OC4Jの利用形態には3種類ありますが、今回使用する形態はスタンドアロンOC4Jと呼ばれるものです。Oracle Application Server 10g に同梱されるApacheベースのWebサーバーや、管理/監視プロセスであるOPMNによる監視を利用せず、J2EEコンテナを切り出したものとなります。スタンドアロンOC4Jは、軽快な動作、軽量といった特長があり、小規模システムの利用や開発環境での利用がお勧めです。ポイントは、Oracle Application Server 10g に使用されるOC4JとこのスタンドアロンOC4Jは、全く同じJ2EEコンテナであることです。すなわち、開発環境で使用するスタンドアロンOC4J上でJ2EEアプリケーションが正しく動けば、実際のシステム構成で使用されるスタンドアロンOC4J上はもちろん、Oracle Application Server 10g 上でも正しく動作することを意味します。なお、以降の文中にて使用するOC4Jは、このスタンドアロンOC4Jを指します。

EclipseとOC4Jを使用しJ2EE統合開発環境を構築するためには、それらを連携させるプラグインが必要となります。Eclipse とOC4Jをつなぐプラグインとして、今回はWeb Tools Platform(WTP)を使用します。WTPは、ObjectLearn Lombozのソースコードが、2004年6月にEclipse.orgに寄贈されてスタートしたプロジェクトです。WTPは、Eclipse.orgで開発しているため、EclipseにWTPがあらかじめ含まれているオールインワン型モジュールをダウンロードして使用することができます。

インデックスに戻る

J2EE統合開発環境の構築 

1 ダウンロード

インストールを実施する前に、必要な製品をダウンロードしておきます。

・Eclipse SDK + WTP
(http://download.eclipse.org/webtools/downloads/ よりダウンロード可能)
・Eclipse SDK Language Pack
(http://download.eclipse.org/eclipse/downloads/ よりダウンロード可能)
Eclipse SDK Language Packは、Eclipseの設定メニューなどを日本語化するために必要です。
・WTP Language Pack
(http://download.eclipse.org/webtools/downloads/translations/R1.5/R-1.5.1-200609230508/index.html よりダウンロード可能)
WTP Language Packは、WTPの設定メニューなどを日本語化するために必要です。
・OC4J
(http://otn.oracle.co.jp/software/products/oc4j/index.htmlより試用版をダウンロード可能)
・JDK
( http://java.sun.com/javase/downloads/index.jspよりダウンロード可能)
(注意)EclipseおよびOC4Jのシステム要件を確認してください。
Eclipseのシステム要件は、ダウンロードのページ内にあるRelease Notesをご覧ください。
Eclipse 3.2.2は、JDK 1.4.x 、JDK 1.5.xに対応しています。
http://www.eclipse.org/eclipse/development/readme_eclipse_3.2.2.html
OC4Jのシステム要件:http://www.oracle.co.jp/products/system/index.html
OC4J 10g Release 3(10.1.3.1)は、Sun JDK 1.4.2(1.4.2_09以上) 、Sun JDK 1.5.0(1.5.0_05以上)に対応しています。

今回はEclipse SDK 3.2.2、WTP 1.5.3、Eclipse Language Pack 3.2.1、WTP Language Pack 1.5.x、OC4J 10g Release 3(10.1.3.1) 、JDK 1.5.0_11を使用しています。
(注)本ケースの場合、WTP Language Pack 1.5.xが適用できない場合があります。

2 インストール

ダウンロードした製品を、以下の順序でインストールしていきます。 なお、本連載では、プラットフォームとしてWindows XPを前提としています。

  1. JDK
  2. OC4J
  3. Eclipse (SDK + WTP、SDK Language Pack、WTP Language Pack)

インストールが完了すると、以下のようなJ2EE統合開発環境を作成することができます。

以降では、インストール先のディレクトリをそれぞれ以下のように表示します。
%JAVA_HOME%     :JDKのインストール先ディレクトリ
%ORACLE_HOME% :OC4Jのインストール先ディレクトリ
%ECLIPSE_HOME% :Eclipseのインストール先ディレクトリ

■JDKのインストール
ダウンロードしたexeファイル(ここでは、jdk-1_5_0_11-windows-i586-p.exe)をダブルクリックし、ウィザードに従うだけでインストールは完了です。 ただ実際に利用するには、JDKの実行ファイルが存在するフォルダにパスを通す必要があります。 Windows XPでは、システムのプロパティ>詳細設定タブ>環境変数>システム環境変数>Path の編集によって、 %JAVA_HOME%\bin という文字列を追加します。
例)C:\Program Files\Java\jdk1.5.0_11\bin

■OC4Jのインストール
ダウンロードしたzipファイルを解凍し、適当なディレクトリに展開します。 次に、管理ユーザー(oc4jadmin)のパスワードを設定する必要があります。%ORACLE_HOME%\binにある起動スクリプトoc4j.cmdに、環境変数JAVA_HOMEとORACLE_HOMEを指定します。
(例)
set JAVA_HOME=C:\Program Files\Java\jdk1.5.0_11
set ORACLE_HOME = D:\oc4j1013
%ORACLE_HOME%\bin ディレクトリでoc4j -startコマンドを発行します。管理ユーザー(oc4jadmin)のパスワード入力を求められるので、任意のパスワードを2度入力します。「Oracle Containers for J2EE 10g (10.1.3.1.0) initialized」が表示されれば、正常に起動されています。以上でOC4J のインストールは完了です。停止するときは、コマンドプロンプト上で「Ctrl + C」キーを押し、「バッチジョブを終了しますか(Y/N)? 」の問いに対し、Yを選択します。

■Eclipse SDK + WTP のインストール
ダウンロードしたzipファイルを解凍し、適当なディレクトリに展開すれば、インストールは完了です。

■Eclipse SDK Language Pack のインストール
ダウンロードしたzipファイルを解凍し、Eclipse SDK + WTPをインストールしたディレクトリ(%ECLIPSE_HOME%)に展開すれば、インストールは完了です。

■WTP Language Pack のインストール
ダウンロードしたzipファイルを解凍し、Eclipse SDK + WTPをインストールしたディレクトリ(%ECLIPSE_HOME%)に展開すれば、インストールは完了です。

3 EclipseとOC4Jの設定

インストールが終了したら、EclipseとOC4Jを連携させるための設定をおこないます。 まず、Eclipseを起動させます。%ECLIPSE_HOME%ディレクトリにあるeclipse.exeをダブルクリックします。 Eclipseのロゴに続き、ワークスペース(作業プロジェクトの格納場所)の選択をしたあと、「ようこそ」の画面が出れば、起動は成功しています。

■JDKのバージョンの確認
Eclipse 設定メニュー:ウィンドウ→設定 で、Java→インストール済みのJRE を選択します。インストールしたJDKであることを確認し、〔OK〕ボタンを押します(インストールしたJREでない場合、追加ボタンより追加します)。

■Javaコンパイラー準拠レベルの確認
Eclipse 設定メニュー:ウィンドウ→設定 で、Java→コンパイラー を選択します。インストールしたJDKのコンパイラー準拠レベルであることを確認し、〔OK〕ボタンを押します(インストールしたJDKのコンパイラー準拠レベルでない場合は、変更します)。

■サーバー・ランタイム定義の追加
Eclipse 設定メニュー:ウィンドウ→設定 で、サーバー→インストール済みサーバー・ランタイム環境 を選択します。〔追加〕ボタンを押します。

定義したいランタイムのタイプの選択で、「Oracle OC4J Standalone 10.1.3」を選び、〔次へ〕ボタンを押します。

Oracle J2EEホームに %ORACLE_HOME%\j2ee\home を指定し(参照ボタンより、ホームの指定が可能)、〔終了〕ボタンを押します。

インストール済みサーバー・ランタイム環境に「Oracle OC4J Standalone 10.1.3」が追加されたことを確認したら、〔OK〕ボタンを押します。

■J2EEパースペクティブを開く
Eclipse 設定メニュー:ウィンドウ→パースペクティブを開く→その他 で、J2EEを選択し、〔OK〕ボタンを押します。

J2EEパースペクティブ画面

■新規サーバーの定義
Eclipse 設定メニュー:ファイル→新規→その他 から、サーバー→サーバー を選択し、〔次へ〕ボタンを押します。

Oracle →Oracle OC4J Standalone Server 10.1.3 を選択し、〔次へ〕ボタンを押します。

必要な情報を入力し、〔終了〕ボタンを押します。

サーバー・パースペクティブのサーバータグ内に、Oracle OC4J Standalone Serverが追加されます。

以上で、実際にJ2EEアプリケーションを開発するための準備が整いました。

インデックスに戻る

J2EEアプリケーション開発手順 

J2EE統合開発環境が構築できたので、ここでは簡単なJ2EEアプリケーションの開発を通して、実際の使用方法を確認します。今回開発するアプリケーションは、JSPとServletを使用し、ブラウザ上のフォームに入力した文字を送信するとその文字をブラウザ上に表示させるものです。なお、Eclipseは起動済み、OC4Jは停止の状態を前提として進めていきます。

1. 動的Webプロジェクトの作成

Eclipse 設定メニュー:ファイル→新規→プロジェクト を選び、Web→動的プロジェクトを選択し、〔次へ〕ボタンを押します。

任意のプロジェクト名を入力し、ターゲット・ランタイムが、「Oracle OC4J Standalone 10.1.3」であることを確認し、〔終了〕ボタンを押します(ここでは、プロジェクト名にProject1と入力します)。

リソースのキャッシュに関するご使用条件に同意する必要があります。〔同意します〕ボタンを押します。

プロジェクト・エクスプローラーに、作成したプロジェクト「Project1」が表示されます。

2. JSPとServletの作成

<JSPの作成>
プロジェクト・エクスプローラー上のプロジェクト「Project1」を右クリックし、新規→JSP を選択します。

ファイル名を記入し、〔次へ〕ボタンを押します(ここでは、ファイル名にInputMesg.jspと入力します)。

JSPテンプレート(新規JSPファイル(HTML))を選択し、〔終了〕ボタンを押します。

ベースとなるJSPファイルが作成されるので、これをもとにアプリケーションの開発をおこないます。

■InputMesg.jsp

<%@ page language="java" contentType="text/html; charset=windows-31j"
pageEncoding="windows-31j"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-31j">
<title>メッセージの入力</title>
</head>
<body>
<p>
<%= new java.util.Date() %></p>
<form action="./MesgServlet" method="POST">
好きなメッセージを入力してください:
<input type="text" name="like">
<input type="submit" value="送信">
</form>
</body>
</html>

作成し終えたら、保管ボタンを選択し、保存およびコンパイルをおこないます。

<Servlet>
プロジェクト・エクスプローラー上のプロジェクト「Project1」を右クリックし、新規→サーブレット を選択します。

Javaパッケージおよびクラス名を設定し、〔次へ〕ボタンを押します(ここでは、Javaパッケージにmypack、クラス名にMesgServletと入力します)。

URLマッピングを必要に応じて変更し、〔次へ〕ボタンを押します。

修飾子、実装するインタフェース、生成するメソッドのスタブを必要に応じて変更し、〔終了〕ボタンを押します。

ベースとなるServletファイルが作成されるので、これをもとにアプリケーションの開発をおこないます。

■MesgServlet.java

package mypack;

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.PrintWriter;
import java.io.IOException;

public class MesgServlet extends HttpServlet
{
  private static final String CONTENT_TYPE = "text/html; charset=windows-31j";

  public void init(ServletConfig config) throws ServletException
  {
    super.init(config);
  }

  public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
  {
    request.setCharacterEncoding("windows-31j");
    String like = request.getParameter("like");
    response.setContentType(CONTENT_TYPE);
    PrintWriter out = response.getWriter();
    out.println("<html>");
    out.println("<head><title>入力メッセージ</title></head>");
    out.println("<body>");
    out.println("<p> 入力したメッセージは、” "+like+" ”です。</p>");
    out.println("</body></html>");
    out.close();
  }
}

作成し終えたら、保管ボタンを選択し、保存およびコンパイルをおこないます。

3. 実行

それでは実行してみましょう。プロジェクト・エクスプローラー上で、作成したプロジェクト「Project1」内にあるInputMesg.jsp(WebContent/ InputMesg.jsp)を右クリックし、実行→サーバーで実行 を選択します。

使用するサーバーが、Oracle OC4J Standalone Server v10.1.3であることを確認し、〔次へ〕ボタンを押します。

実行しようとしているプロジェクトが、構成プロジェクトに追加されていることを確認し、〔終了〕ボタンを押します。

OC4Jが自動的に起動し、アプリケーションがデプロイされます。その後、ブラウザが自動的に起動し、実行結果を表示します。

好きなメッセージを入力し、送信ボタンをクリックします(ここでは、Eclipse+OC4Jと入力します)。

入力したメッセージが表示されれば、J2EEアプリケーションの開発は成功しました。

(参考) EclipseからのOC4Jの起動/停止方法
サーバー・パースペクティブのサーバータグ内にあるOracle OC4J Standalone Serverを右クリックし、始動/停止を選択します。これにより、OC4Jの起動、停止をおこなうことが可能です(下図は、OC4J停止の選択)。

インデックスに戻る

まとめ 

今回は、Eclipse、WTP、OC4Jを用いてJ2EE統合開発環境(IDE)を構築し、簡単なアプリケーションを開発するところまでご紹介しました。
次回は、Oracleデータベース接続アプリケーションの作成や、Antを用いたEclipseからOracle Application Serverへのデプロイ方法などについてご説明したいと思います。

インデックスに戻る