FeaturesPluginsDocs & SupportCommunityPartners

NetBeans IDE 5.5 での Java EE アプリケーションのインポート

このドキュメントでは、既存の Java[tm] EE エンタープライズアプリケーションを NetBeans[tm] IDE プロジェクトにインポートする方法を説明します。 一例として、J2EE 1.4 SDK Samples に含まれている cmpcustomer というサンプルアプリケーションをインポートします。

cmpcustomer アプリケーションには、エンタープライズアプリケーションの配備記述子を含む src フォルダ、EJB モジュールのソースを含む cmpcustomer-ejb フォルダ、Web アプリケーションクライアントのソースを含む cmpcustomer-war フォルダがあります。

cmpcustomer のサンプルソースコードは、Sun/AppServer/samples/ejb/cmp/apps/cmpcustomer フォルダにあります。 J2EE 1.4 SDK Samples をお持ちでない場合は、http://java.sun.com/j2ee/1.4/download.html からダウンロードできます。 サンプルは、アプリケーションサーバーのインストールディレクトリの samples フォルダに抽出する必要があります。

注: このドキュメントでは、同じプロジェクトソースを使って、次の方法でプロジェクトをインポートする方法を示します。

  • エンタープライズアプリケーション全体をインポートする。
  • EJB モジュールだけをインポートする。
  • EJB モジュールをインポートし、モジュールの既存の Ant スクリプトを使ってプロジェクトを構築、配備する。

ただし、IDE では、ソースルートは一度に 1 つのプロジェクトでのみ使用できます。 3 種類のプロジェクトを作成する場合は、新しいプロジェクトを作成する前に、その前に作成したプロジェクトを削除する必要があります。 「プロジェクト」ウィンドウでプロジェクトのプロジェクトノードを右クリックし、「プロジェクトを削除」を選択することによって、プロジェクトを削除することができます。 「プロジェクトを削除」ダイアログでは、プロジェクトソースを削除するオプションが選択されていないことを確認します。

作業の開始

作業に取り組む前に、必要なソフトウェアをすべて用意し、環境設定を行なってください。

ソフトウェアのインストール

開始する前に、コンピュータに次のソフトウェアをインストールしておく必要があります。

注: NetBeans IDE 5.5 では、Sun Java System Application Server 8.1 および 8.2 もサポートされています。 バージョン 8.1 の Application Server では、Apache Derby ではなく PointBase データベースサーバーが使用されますが、プロジェクトをインポートする手順は同じです。

Sun Java System Application Server の登録

J2EE プロジェクトの作業を行うには、Sun Java System Application Server のインスタンスを登録する必要があります。 NetBeans IDE 5.5/Sun Java System Application Server バンドルをインストールした場合は、ローカルアプリケーションサーバーが自動的に登録されます。

  1. メインウィンドウで「ツール」>「サーバーマネージャー」を選択します。
  2. 「サーバーを追加」をクリックします。 「Sun Java System Application Server」を選択し、インスタンスに名前を付けます。 「次へ」をクリックします。
  3. アプリケーションサーバーのインストールディレクトリ (例: C:\Sun\Appserver) を指定します。
  4. 「ローカルのデフォルトドメインを登録」ラジオボタンが選択された状態のままで、ドメインを選択します。
  5. 必要であれば、「次へ」をクリックして管理者のユーザー名とパスワードを入力します。 IDE のユーザーディレクトリにユーザー名とパスワードを保存しない場合は、各フィールドを空白のままにしておきます。 IDE は必要に応じて、いつでも情報を尋ねてきます。
    注: admin のデフォルトパスワードは adminadmin です。
  6. 「完了」をクリックします。
  7. 「実行時」ウィンドウで「サーバー」ノードを展開します。 Sun Java System Application Server が表示されます。
  8. このアプリケーションサーバーのノードを右クリックし、「サーバーを起動」を選択します。

エンタープライズアプリケーション全体のインポート

アプリケーションが次の条件を満たす場合は、エンタープライズアプリケーション全体を一度にインポートできます。

  • プロジェクトが、エンタープライズアプリケーションのプロジェクト構造に関する Java BluePrints の推奨に従っている。
  • エンタープライズアプリケーションのモジュールの構築に、既存の Ant 構築スクリプトを利用しない。 IDE が、モジュールごとに構築スクリプトを作成します。

注: いくつかの古いバージョンの cmpcustomer サンプルは、BluePrints に準拠していません。 この J2EE サンプルを IDE でプロジェクトとして開けない場合は、http://java.sun.com/j2ee/1.4/download.html に移動し、最新バージョンをダウンロードしてください。

プロジェクトの作成

  1. cmpcustomer サンプルをソースルートを使ってプロジェクトを作成した場合は、プロジェクトを右クリックして、「プロジェクトを削除」を選択します。 「プロジェクトを削除」ダイアログでは、プロジェクトソースを削除するオプションが選択されていないことを確認します。
  2. 「ファイル」>「新規プロジェクト」(Ctrl-Shift-N) を選択します。
  3. 「エンタープライズ」>「既存のソースを使用するエンタープライズアプリケーション」を選択します。 「次へ」をクリックします。
  4. エンタープライズアプリケーションを含むフォルダを「場所」フィールドに入力するか、ブラウズして選択します。 これは、エンタープライズアプリケーションの src フォルダと、アプリケーションの各モジュールの最上位フォルダを含むフォルダです。 この例では、samples/ejb/cmp/apps/cmpcustomer フォルダを指定します。
  5. プロジェクトに cmpcustomer という名前 (別の名前でもよい) を付け、プロジェクトフォルダの場所を指定します。 ここでは、この場所を NetBeans_projects とします。 既存のソースを使用するエンタープライズアプリケーションの場合、ソースフォルダと同じ場所にプロジェクトフォルダを作成することはできません。
  6. プロジェクトの J2EE バージョンを選択します。 この設定によって、コードの生成や配備記述子の管理に IDE が使用する J2EE 仕様のバージョンが決まります。 この例では、J2EE バージョンを J2EE 1.4 のままにします。
  7. プロジェクトのターゲットアプリケーションサーバーを設定し、「完了」をクリックします。 IDE によって、エンタープライズアプリケーションとその各モジュール用の標準 IDE プロジェクトが作成されます。

プロジェクトの設定

プロジェクトの作成時に、sun-application.xml ファイル内の context-root 要素の確認を求める警告が表示されます。 これは、モジュールの JAR ファイルおよび WAR ファイルの名前を IDE が認識することはなく、独自の名前を付けるためです。 したがって、修正された JAR ファイル名と WAR ファイル名を使って新しい配備記述子が作成されます。 元の配備記述子も保存されます。 新しい配備記述子を使用する必要がありますが、設定の一部を変更する必要があります。

  1. application.xmlsun-application.xml で、Web モジュールの正しいコンテキストルートを設定します。 application.xml をダブルクリックし、context-root 要素を cmpcustomer-war から customer に変更します。 次に、sun-application.xml をダブルクリックしてビジュアルエディタで開き、「EAR」ノードを展開して、「cmpcustomer-war.war」ノードを選択します。 「コンテキストルート」フィールドの値を cmpcustomer-war から customer に変更します。
  2. cmpcustomer-ejb プロジェクトで、「構成ファイル」を展開し、sun-ejb-jar.xml をダブルクリックして、「配備時に表を作成」を True に設定します。 「ファイル」>「すべてを保存」を選択して、変更を保存します。
  3. Web モジュールの LocalStrings.properties ファイルは不適切な場所にあります。 このファイルを cmpcustomer-war/src/conf フォルダから cmpcustomer-war/src/java フォルダに移動します。

プロジェクトのクラスパスの設定

エンタープライズアプリケーションの配備記述子には、そのモジュール間のクラスパス関係についての情報は含まれません。このため、自身でクラスパスを設定する必要があります。

  1. 「プロジェクト」ウィンドウで、「cmpcustomer-war」プロジェクトノードの「ライブラリ」ノードを展開します。 プロジェクトのターゲット JDK とアプリケーションサーバーだけが表示されます。
  2. 「ライブラリ」ノードを右クリックし、「プロジェクトを追加」を選択します。
  3. cmpcustomer-ejb プロジェクトのプロジェクトフォルダ (NetBeans_projects/cmpcustomer/cmpcustomer-ejb) を選択し、「了解」をクリックします。 Web モジュールのクラスパスに EJB モジュールのクラスが追加されます。
    注: cmpcustomer-ejb プロジェクトのプロジェクトフォルダは、samples フォルダ内の cmpcustomer-ejb ソースフォルダではなく、NetBeans_projects 内のものを選択します。

データベースと JDBC リソースの設定

cmpcustomer アプリケーションは、その配備時に、すべてのデータベース表が作成されるように設定されています。 必要な作業は、表を作成する Derby データベースを指定するだけです。 IDE で Sun Java System Application Server を登録すると、sample という名前の事前設定された Derby データベースがホームディレクトリの .netbeans-derby フォルダに作成されます。 このデータベースをターゲットデータベースとして使用できます。

EJB モジュールがこのデータベースにアクセスできるようにするには、サーバーにデータベースの接続プールとデータベースリソースを作成する必要があります。 これは、EJB モジュールプロジェクト内のサーバーリソースファイルを使って行うことができます。

  1. cmpcustomer-ejb プロジェクトを右クリックし、「新規」>「ファイル/フォルダ」を選択します。 「Sun リソース」カテゴリから「JDBC 接続プール」テンプレートを選択し、「次へ」をクリックします。
  2. 「JDBC 接続プールの名前」フィールドに cmpcustomerPool と入力します。 「既存の接続から抽出」ラジオボタンを選択し、コンボボックスから sample データベースを選択します。 「次へ」をクリックします。
  3. 「パスワード」プロパティーの値として app と入力し、「完了」をクリックします。 プロジェクトの「サーバーリソース」ノードの下に、この接続プールのノードが表示されます。

続いて、この接続プールに接続するデータベースリソースを作成してみましょう。

  1. cmpcustomer-ejb プロジェクトを右クリックし、「新規」>「ファイル/フォルダ」を選択します。 「Sun リソース」カテゴリから「JDBC リソース」テンプレートを選択し、「次へ」をクリックします。
  2. 「既存の JDBC 接続プールを使用」を選択し、コンボボックスから cmpcustomerPool を選択します。
  3. 「JNDI 名」フィールドに jdbc/cmpcustomer と入力し、「完了」をクリックします。 プロジェクトの「サーバーリソース」ノードの下に、このリソースのノードが表示されます。

最後に、データベースをルックアップする際に EJB モジュールが適切な JNDI 名を使用するように設定する必要があります。

  1. 「構成ファイル」ノードを展開し、sun-ejb-jar.xml をダブルクリックします。
  2. 「CMP リソース」セクションの「JNDI 名」フィールドに jdbc/cmpcustomer と入力します。 ファイルを保存して閉じます。

アプリケーションの実行

  1. cmpcustomer プロジェクトが主プロジェクトでない場合は、そのプロジェクトノードを右クリックし、「主プロジェクトとして設定」を選択します。
  2. 「実行」>「主プロジェクトを実行」を選択します。 IDE によって、プロジェクトの EAR ファイルが構築され、アプリケーションサーバーに配備されます。

トラブルシューティング

  • IDE の「新規ウィザード」を完了できず、選択された場所に BluePrints 構造のアプリケーションが含まれていないことを示すメッセージが表示される。 cmpcustomer サンプルが古いバージョンであることが考えられます。 http://java.sun.com/j2ee/1.4/download.html で、この J2EE サンプルの最新バージョンをダウンロードしてください。
  • 顧客を作成または顧客を検索しようとすると、EJBException 例外になる。 「ツール」>「Derby データベース」>「Derby サーバーを起動」を選択し、Derby データベースサーバーが動作していることを確認してください。
  • JSP ページのどれにも、適切な表示テキストがない。 LocalStrings.properties ファイルを Web アプリケーションの src/conf フォルダから src/java フォルダに移動していることを確認してください。
  • 顧客を作成または検索しようとすると、次のエラーになる。 「Create Customer Failed : javax.ejb.EJBException: Transaction aborted; nested exception is: javax.transaction.RollbackException: Transaction marked for rollback」。 このサンプルの JDBC リソースが正しく作成、設定されていることを確認してください。 また、cmpcustomerPool 接続プールが存在していて、デフォルトパスワードが含まれていることを確認してください。 接続プールを表示するには、「実行時」ウィンドウに移動し、適切なアプリケーションサーバーの「JDBC」>「接続プール」を展開します。 そこにパスワードが含まれていることを確認するには、cmpcustomerPool をダブルクリックし、「プロパティー」の省略符号ボタン (...) をクリックして「パスワード」プロパティーが app に設定されていることを確認します。

モジュールの個別インポート

次の場合は、モジュールを個別にインポートしなければならないことがあります。

  • エンタープライズアプリケーションが BluePrints 推奨に従っていない。
  • モジュールがスタンドアロンの EJB モジュールか Web アプリケーションである。
  • モジュールの構築、配備、デバッグに独自の Ant 構築スクリプトを利用する。

ここでは、一例として cmpcustomer-ejb モジュールを単独でインポートします。 1 つの EJB モジュールの個別インポートに使用できるテンプレートは 2 つあります。

IDE による構築、実行、デバッグ

標準 EJB モジュールプロジェクトを作成すると、IDE によって、プロジェクトの構築および配備方法を制御する Ant 構築スクリプトと一群のプロパティーファイルが作成されます。 この Ant スクリプトは、プロジェクトのオプションが設定されると更新されます。

プロジェクトの作成

  1. cmpcustomer サンプルをソースルートを使ってプロジェクトを作成した場合は、プロジェクトを右クリックして、「プロジェクトを削除」を選択します。 「プロジェクトを削除」ダイアログでは、プロジェクトソースを削除するオプションが選択されていないことを確認します。
  2. 「ファイル」>「新規プロジェクト」(Ctrl-Shift-N) を選択します。
  3. 「エンタープライズ」>「既存のソースを使用する EJB モジュール」を選択します。 「次へ」をクリックします。
  4. EJB モジュールのソースを含むフォルダを「場所」フィールドに入力するか、ブラウズして選択します。 一般には、EJB モジュールの src フォルダを含むフォルダですが、実際には任意のフォルダを指定できます。 IDE は、任意の EJB モジュール構造にも対応します。 この例では、samples/ejb/cmp/apps/cmpcustomer/cmpcustomer-ejb フォルダを指定します。
  5. プロジェクトに cmpcustomer-ejb-standard という名前 (別の名前でもよい) を付け、プロジェクトフォルダの場所を指定します。 cmpcutomer-ejb フォルダをプロジェクトフォルダとして使用することはできません。このフォルダには build.xml がすでに含まれていて、IDE によって生成される build.xml と重複するからです。
  6. プロジェクトのターゲットアプリケーションサーバーを設定します。
  7. プロジェクトの J2EE バージョンを選択します。 この設定によって、コードの生成や配備記述子の管理に IDE が使用する J2EE 仕様のバージョンが決まります。
  8. 「次へ」をクリックします。 「既存のソースとライブラリ」ページは、より複雑な EJB モジュールプロジェクトを構成する場所です。 複数のソースディレクトリを追加したり、conf フォルダが不規則な場所にある場合は、その場所を指定したり、ライブラリフォルダを指定したりできます。 プロジェクトを作成すると、ライブラリフォルダ内のフォルダおよび JAR ファイルのすべてがプロジェクトのクラスパスに追加されます。
  9. 「既存のソースとライブラリ」ページの設定を変更しないで、単に「完了」をクリックします。 IDE によって EJB モジュールプロジェクトが作成されます。
    注: モジュールを実行する場合は、データベースと JDBC リソースの設定が必要になることがあります。

独自の Ant スクリプトによるコンパイル、実行、デバッグ

自由形式 EJB モジュールプロジェクトが作成されると、IDE は指定された Ant 構築スクリプトを使用してプロジェクトを構築、配備します。 IDE で、プロジェクトの Ant スクリプトに含まれている設定に合わせてプロジェクトを構成する必要があります。 また、NetBeans でプロジェクトをデバッグするには、独自のターゲットを作成する必要があります。

注: cmpcustomer アプリケーションの Ant スクリプトを使ってプロジェクトを構築および配備する前に、サーバーのインストールとドメイン構成に関する情報を Sun/AppServer/samples/common.properties ファイルで指定する必要があります。

プロジェクトの作成

  1. cmpcustomer サンプルをソースルートを使ってプロジェクトを作成した場合は、プロジェクトを右クリックして、「プロジェクトを削除」を選択します。 「プロジェクトを削除」ダイアログでは、プロジェクトソースを削除するオプションが選択されていないことを確認します。
  2. 「ファイル」>「新規プロジェクト」(Ctrl-Shift-N) を選択します。
  3. 「エンタープライズ」>「既存の Ant スクリプトを使用する EJB モジュール」を選択し、 「次へ」をクリックします。
  4. EJB モジュールのソースを含むフォルダを入力するか、参照して選択します。 一般には、EJB モジュールの src フォルダを含むフォルダですが、実際には任意のフォルダを指定できます。 IDE は、任意の EJB モジュール構造にも対応します。 この例では、samples/ejb/cmp/apps/cmpcustomer/cmpcustomer-ejb フォルダを指定します。 IDE によって、構築スクリプトの名前が自動的に設定されます。
    注: cmpcustomer-ejb モジュールの構築スクリプトは、Sun/AppServer/samples/ ディレクトリにある標準の common-ant.xml 構築スクリプトをインポートします。 この構築スクリプトは、サンプルディレクトリが AppServer ディレクトリにあるとみなします。 サンプルを別にダウンロードし、別の場所にインストールした場合は、build.xml が有効な構築スクリプトではないことを示すメッセージが表示されます。 その場合は、テキストエディタで構築スクリプトを開き、次の行を編集し、common-ant.xml がある場所を示すようにしてください。
    <!DOCTYPE project [ <!ENTITY include SYSTEM "../../../../../common-ant.xml"> ]>
  5. プロジェクトに cmpcustomer-ejb-freeform という名前を付け、プロジェクトフォルダの場所を指定します。 「次へ」をクリックします。

IDE コマンドへの Ant ターゲットの関連付け

  1. ウィザードの「構築と実行のアクション」ページでは、プロジェクトのコマンドに応じて IDE が実行するターゲットを指定します。 IDE は、アクションごとにターゲットを提案します。 それぞれのアクションに次のターゲットを指定します。
    • プロジェクトを構築: core
    • プロジェクトの生成物を削除: clean
    • Javadoc を生成: javadocs
    • プロジェクトを実行: update
    • プロジェクトをテスト: 空白のままにする
    • プロジェクトを配備: update
  2. 「次へ」をクリックします。

ソースフォルダの設定

  1. ウィザードの「EJB ソース」ページでは、モジュールの配備記述子を含むフォルダを指定します。 この例では、「構成ファイルフォルダ」は cmpcustomer/cmpcustomer-ejb/src/conf です。
  2. 「サーバーリソースフォルダ」フィールドに、IDE が生成するすべてのサーバーリソースファイルを含めるフォルダを指定します。 サーバーリソースファイルは、Sun Java System Application Server 上の JDBC 接続プールやデータソースなどのリソースを自動的に設定する際に IDE が使用する XML ファイルです。
  3. 「サーバーの種類」コンボボックスで「Sun Java System Application Server」を選択します。
  4. 「J2EE バージョン」コンボボックスで「J2EE 1.4」を選択します。 この設定によって、コードの生成や配備記述子の管理に IDE が使用する J2EE 仕様のバージョンが決まります。
  5. 「次へ」をクリックします。
  6. ウィザードの「ソースパッケージフォルダ」ページでは、追加のソースルートおよびテストパッケージルートを追加できます。 この例では、ソースルートが 1 つしかないため、このページでは、何も設定する必要はありません。
  7. 「ソースレベル」コンボボックスで「JDK 1.4」を選択します。 この設定によって、コード補完やエラーの強調表示で IDE が使用する Java SE プラットフォームのクラスが決まります。 プロジェクトのターゲット JDK は設定されません。 ターゲット JDK は Ant スクリプトで設定する必要があります。
    注: IDE は、登録されている全 Java プラットフォームについて、バージョン番号が一致するプラットフォームがないか調べ、一致するプラットフォームを使用して Javadoc およびデバッグ用のソースコードを提供します。 Java プラットフォームを登録し、そのプラットフォームのソースコードおよび Javadoc の場所を指定するには、「ツール」>「プラットフォームマネージャー」を選択します。
  8. 「完了」をクリックします。 「プロジェクト」ウィンドウと「ファイル」ウィンドウの両方に、cmpcustomer-ejb-freeform プロジェクトが表示されます。

プロジェクトのクラスパスの設定

自由形式プロジェクトでは、クラスパスの設定はすべて Ant スクリプトが管理します。 IDE では、Ant スクリプトに定義されている設定に応じてプロジェクトのクラスパスを宣言します。 これらの設定を使用し、プロジェクトに対するコード補完やエラーの強調表示、リファクタリングが提供されます。

自由形式 EJB モジュールプロジェクトの場合は、必ず、Sun Java System Application Server のローカルのインストール場所にある j2ee.jar ライブラリをクラスパスに追加する必要があります。

  1. 「プロジェクト」ウィンドウで「cmpcustomer-ejb-freeform」プロジェクトノードを右クリックし、「プロパティー」を選択します。
  2. ダイアログの右パネルで「Java ソースのクラスパス」を選択します。 「JAR/フォルダを追加」をクリックします。 アプリケーションサーバーのインストールフォルダ内の lib フォルダに移動し、j2ee.jar を選択して、「開く」をクリックします。

プロジェクトの出力の設定

プロジェクト間の依存関係を設定するには、構築出力および Javadoc 出力ディレクトリの名前と場所を IDE が認識している必要があります。 これらは、プロジェクトのプロパティーで宣言します。

  1. 「プロジェクト」ウィンドウで「cmpcustomer-ejb-freeform」プロジェクトノードを右クリックし、「プロジェクトを構築」を選択して構築出力を生成します。
  2. 「cmpcustomer-ejb-freeform」プロジェクトノードを右クリックし、「プロジェクトの Javadoc を生成」を選択して Javadoc 出力ディレクトリを生成します。
  3. 「cmpcustomer-ejb-freeform」プロジェクトノードを右クリックし、「プロパティー」を選択します。
  4. ダイアログの左パネルで「出力」を選択します。 すべての構築出力および Javadoc 出力ディレクトリを指定し、「了解」をクリックします。

次の手順

NetBeans IDE 5.5 の使用方法については、次のリソースを参照してください。

メーリングリストに登録することによって、NetBeans IDE Java EE 開発機能に関するご意見やご提案を送信したり、サポートを受けたり、最新の開発情報を入手したりできます。

Bookmark this page

del.icio.us furl simpy slashdot technorati digg
Companion
Projects:
MySQL Database Server   Open JDK: an Open SourceJDK   GlassFish Community: an Open Source Application Server    Mobile & Embedded Community    Open Solaris   java.net - The Source for Java Technology Collaboration   Virtual Box - full virtualizer  Open ESB - The Open Enterprise Service Bus Powered by