Oracle JDeveloperおよびWeblogic Workshopの相互運用性

Oracle JDeveloperのHow toドキュメント
オラクル、Shaun O'Brien著
2008年7月

はじめに

オラクルは、BEAの買収に伴い、プロジェクト導入のために、既存の膨大な数の潜在的な選択肢に大量の技術的な捕捉情報を追加してきました。 このHow toでは、個々の主要な開発環境、つまりOracle JDeveloperとOracle Workshop for WebLogicで、同じコードベースを使用するために必要な手順を重点的に説明します。

利用するコードベースは、Oracle Workshop側のサンプル・アプリケーションで、プロトタイプのSUN Dukes Bookstoreには次のURLからアクセスできます。 jsf-bookStore.war

ツールについて

Oracle JDeveloper: Oracle JDeveloperは、Java、XML、Webサービス、SQL用の最新の業界標準を使用したサービス指向アプリケーションを構築するための統合開発 環境(IDE)です。

アプリケーションのモデリング、コーディング、デバッグ、テスト、プロファイリング、チューニング、および配置のための統合された機能で、開発ライフ・サ イクル全体をサポートします。

Oracle JDeveloperの視覚的で宣言的な開発アプローチと革新的なOracle Application Development Framework(Oracle ADF)の連携によって、アプリケーション開発の簡素化、通常のコーディング・タスクの削減、生産性の大幅な向上、テクノロジー・スタックの選択が可能に なります。

詳細については、 Oracle JDeveloperホームページを参照してください。

Oracle Workshop for WebLogic: Oracle Workshop for WebLogicは、EclipseおよびWeb Tools Platformを、Java、Java EE、Object Relational Mapping、Spring、Webアプリケーション用のツールで強化します。

Oracle Workshopの詳細については、 ホー ムページを参照してください。

問題領域

このドキュメントで取り上げる問題領域は、前述の項で説明した2つの環境間で特定のコードベースの使用を試みる状況におけるものです。 この問題は、ツールがまだ標準化されていない環境か、またはこのケースのように、すでに別のツールが存在している環境に新しいツールが導入された場合によ く発生します。

大部分のIDEは、それぞれが維持しているプロジェクト構造に関連するメタデータを維持します。 IDEは多くの場合、コードベース自体とは無関係です。 Apache Foundationは、POM(プロジェクト・オブジェクト・モデル)という、プロジェクトの概念を独立して管理できるMavenプロジェクトを提供し ています。 このプロジェクトは、この目的のために特別に作成されたツールを使用して、プロジェクト構造間で管理および転送をおこなう方法を提供します。 Mavenプロジェクトの詳細については、Apache Foundationsのホームページで Mavenを参照してください。 MavenとOracle JDeveloperとの統合の概要については、 次 のドキュメントを参照してください。 このソリューションの詳細は、このHow toの対象外となります。

アプローチ

ここで利用するソリューションは、warファイルを最初の環境にインポートし、両方のツールが同じソース・ツリーを"共有"する方法について示します。ま た、各環境における個々の問題を解決するために、項目を微調整する必要がある場所を示します。 各ソリューションは、各環境でのプロジェクト作成に使用するための序文に一覧表示されているwarファイルをユーザーがすでにダウンロードしていることが 前提となっています。 また、これらの各ソリューションでは、作業環境がWindowsであることも前提条件の1つです。

Oracle Workshop

スタート・メニューから「 すべてのプログラム」を選択し、次の図のように選択してOracle Workshopを開きます。

Oracle Workshopを開いたら、新規プロジェクトの作成を選択して、Fileメニューから「 Import」 を選択し、ソースをインポートします。次の図を参照してください。

Importダイアログが表示されます。 ドリルダウンしてWebフォルダを展開し、「 WAR File」を選択しま す。次の図を参照してください。

選択すると、インポートするwarファイルの場所を入力するよう要求されます。 この選択をおこなうことで、warファイルのマニフェストが読み取られ、Webプロジェクト名およびターゲット・ランタイムにデフォルトの選択肢が入力さ れます。 これらのデフォルト値を受け入れるか、それぞれを必要に応じて変更します。

完了すると、プロジェクト・ナビゲータは次のように表示されます。

プロジェクトを実行するには、「 index.jsp」を選択して、Runメニューから「 Run」を選択し ます。 次のようなRunダイアログが表示されます。

Finish」をクリックして、指定したサーバーに配置します。 すべての設定が正しい場合、IDEに次のようなページが表示されます。

アプリケーションを自由に操作して、利用可能な機能を確認してください。

Oracle JDeveloper

Oracle JDeveloperを起動するには、ファイル・システム内のダウンロード・ファイルを解凍したフォルダに移動して、「 jdeveloper.exe」 を起動します。Oracle JDeveloperを初めて起動するときには、jdk(Java Development Kit)の場所の入力を要求される場合があります。 場所を入力すると、使用するロールの入力を求められます。 デフォルトのロールを選択すると、イントロ・スプラッシュ画面が開きます。

新規アプリケーションの作成:
アプリケーション・マネージャからプルダウンをクリックして、「 New Application」を選択します。 次のダイアログが表示されます。

ここで「 OK」をクリックして、次のポップアップでデフォルト値を受け入れます。

ソースのインポート:
次に、アプリケーション・ナビゲータでプロジェクトを右クリックし、「 New」をクリックします(または[Ctrl]+[N]を押しま す)。

ギャラリの左側で「 Projects」を選択し、右側で「 Project from Existing Source」を選択します。

ソースのインポートを支援するために、次のダイアログが表示されます。

Next」をクリックします。

ウィザードの次の画面に表示されるのは、このソースのターゲット・プロジェクトに関する情報です。 プロジェクトに好きな名前をつけ、そのプロジェクトのファイル・システムの場所を指定します(デフォルトでは、アクティブなワークスペースのサブフォルダ の場所は、[JDev install]\mywork\[Application Name]です)。 この例では、プロジェクト名を"bookstore"とします。

Next」をクリックします。

ここで、Oracle JDeveloperから参照するソースの場所を入力するよう要求されます。 このソースは、[Workshop home]\bea\user_projects\workspaces\default\[project name]にある必要があります。 このソース・パスをOracle JDeveloperに追加するには、"Java Source Paths"ペインの右側にある「 Add」 ボタンをクリックします。

ディレクトリ・ツリー・ブラウザが表示されます。 適切なソース・ルートに移動して選択し、「 Select」をクリック します。 ソースのインポートを確認するダイアログが表示され、入力を要求されます。 この例では、最初に選択されている項目を使用するので、チェックされている項目(ダイアログ内の2つ目)のチェックを外し、最初の項目の横にあるチェッ ク・ボックスをチェックして、「 OK」をクリックします。次の図を参照してください。

Default Packageを"bookstore"に変更し、"Copy Files to Project Directory"はチェックされていない状態のままにします。これは、2つのIDEが同じソースを使用するというユースケースを満たすためにソースを 外部から参照するためです。

この時点で、「 Finish」をクリックして、インポートを開始します。

ここから、Oracle JDeveloperに制御が移ります。 まず、指定したソースを検索して、そのソースを参照するローカル・メタデータが作成されます。

アプリケーションのコンパイルをおこないます。 プロジェクト名を右クリックして、「 Rebuild」を選択します。次の図を参照してくだ さい。

この時点では、次のようなコンパイル・エラーが表示されます。

ライブラリ(タグ/アプリケーション)のインポート:
このコードをOracle JDeveloper内で使用できるように適応させるには、いくつかの手順を実行する必要があります。 第一に、このアプリケーションは"ブランク"アプリケーションとして作成し、ソースを直接インポートしているので、Oracle JDeveloperに該当するライブラリを認識させる必要があります。 これは、bookstoreプロジェクトのプロジェクト・プロパティにアクセスしておこないます。 アクセスは、プロジェクト名をダブルクリックし、プロジェクト名を右クリックして「Project Properties」を選択するか、Toolsメニュー・アイテムから「 Project Properties」を選択しておこないま す。 次のような画面が表示されます。

左側のパネルにある"JSP Tag Libraries"オプションから処理を開始します。 このオプションを選択すると、ライブラリの可視性の有効範囲が異なる3つのオプションをもったリストが、右側のペインに表示されます。 このケースでは、「 Local libraries」を選択して、ペインの下部にある「 Add」ボタンをクリックします。 次の選択リストが表示されます。

User」を選択して、ダイアログの下部にある「 New」ボタンをクリックします。 これにより、ファイル・チューザーが表示されます。 [Workshop home]\bea\user_projects\workspaces\default\[project name]\WEB_INFに移動し、「 bookstore.tld」 を選択して「 Open」ボタンをクリックします。 これで、Userライブラリの下に"bookstore 0.03"が追加された選択リストが表示されます。 「 OK」をクリックして、Add Libraries選択リストを閉じます。

次に、Project Propertiesダイアログの左側で「 Libraries and Classpath」を選択して、「 Add Library」ボタンをクリックします。次の図を参照してください。

タグ・ライブラリの作成時に表示されたものと同様のライブラリ・チューザーが表示されます。 [Ctrl]を押しながらクリックして、以下の4つのライブラリを同時に選択します。

  • JSF
  • JSP runtime
  • JSTL 1.2
  • JSTL 1.2 Tags

次の画面が表示されます。

右側にある「 Add JAR/Directory」ボタンをクリックします。 再度ファイル・チューザーが表示され、選択を求められます。 今回は、[Workshop home]\bea\user_projects\workspaces\default\[project name]\WEB_INF\libフォルダにドリルダウンし、[Shift]を押しながらクリックして、ここに表示されているすべてのライブラリを選択 し、「 Select」ボタンをクリックします。 次の画面が表示されます。

OK」ボタンをクリックします。

ここで、前述の指示にしたがって再構築します。 すべてを正しくおこなうと、以下のような一連のエラー・メッセージが表示されます。

HTMLルート・ディレクトリの設定:
前述のようなエラーが表示される原因は、使用しているソースの構成方法にあります。つまり、ソースのドキュメント・ルートが明確にされていないためです。 そのため、Oracle JDeveloperにアクセスして、ソース・ツリーのドキュメント・ルートに配置されているほかのIDEの場所を直接指定する必要があります。 これは、すでにおこなったように、bookstoreのプロジェクト・プロパティを呼び出しておこないます。 ただし、今回は"Project Source Paths"にドリルダウンして、代替の選択として「 Web Application」を選択します。

"HTML Root Directory"設定プロパティが表示されます。 「 Browse」ボタンをクリックし、 ファイル・チューザーを使用して次のファイルに移動します。 [Workshop home]\bea\user_projects\workspaces\default\[project name]。「 Select」 ボタンをクリックして、ファイル・チューザーを閉じます。次に、「 OK」をクリックして変更を適用し、Project Propertiesダイアログを終了します。 プロジェクトのWeb Contentにドリルダウンすると、アプリケーション・ナビゲータにjspファイルが表示されているのがわかります。次の図を参照してください。

Save Allアイコン「 」 をクリックして変更内容を保存し、再コンパイルします。

レガシー・アプリケーションの問題の修正:
最後に、構文チェック・エラー(上図参照)を解決するために、アプリケーションを調べます。 検出されたアプリケーションの構造に基づくと、web.xml内ではすべてのページにPrelude jspやCoda jspが含まれていることになります。

                                   
&quot;<include-prelude>/template/prelude.jspf</include-prelude>
                                    
<include-coda>/template/coda.jspf</include-coda>&quot;

prelude.jspを調べるために、「 Source」タブをクリックします。次のように表示されます。
これは、すべてのページに、ページ・レベルでディレクティブなエラー・ページが含まれることを意味しています。
さらに手順を進め、errorpage.jspで実際のエラー・ページ自体を調べます。次のように表示されます。
prelude.jspのページ・ディレクティブで、このページに複製宣言を作成している点に注意してください。 これを修正するには、prelude.jspに戻って、次のファイルを削除します。 <xmp>&quot;<%@ page errorPage="/template/errorpage.jsp" %>&quot;</xmp> .
メニューバーのSave Allアイコン「 」 をクリックして、これまでと同様にアプリケーションを再構築します。
次のような警告が表示されることがあります。 "Warning(35,8): class javax.faces.webapp.UIComponentTag has been deprecated"。この警告は無視してくださ い。古いバージョンのJava Frameworkで作成されたコードを実行していることを通知しているだけです。 ライブラリを設定することで、アプリケーションを実行時に正しいクラスへ配置させる必要があります。
コードの実行:
それでは、コードを実行します。 Application Navigatorペインで「 index.jsp」を右クリックして、「 Run」 を選択します。次の図を参照してください。
Oracle JDeveloperがバンドルされたOC4Jインスタンスを起動し、アプリケーションをそのインスタンスに配置して、索引ページがロードされているブラ ウザを自動的に開きます。 ページは次の図のようになります。これは、Oracle Workshopでロードしたページと一致します。
Oracle Workshopを使用してアプリケーションをテストするために実行した機能をレプリケートし、コードベースの移行が成功したことを確認します。 <h2>まとめ</h2>
このHow toでは、2つの異なる開発ツール(Oracle WorkshopとOracle JDeveloper)内の共通のソース・コードを活用するユースケースについて検討しました。 単純な例で確認したように、設定を正しくおこなうためには、ユーザーがいくつかの作業を実行する必要があります。しかし、それぞれの手順に必要な各ツール に関する実用的な基礎知識は最低限のものです。
各ツールは、それぞれの作業コードをwarファイルに"配置"して、ほかのツールセットで作成されたwarファイルをインポートできます。これにより、 warファイルをトランスポートとして活用する各環境間でコードをトレードする機能が、シンプルで効果的なアプローチとなります。
プロジェクト管理において、さらに粒度の高い制御が必要な場合は、Apache FoundationのMavenプロジェクトを調べることを推奨します。もっとも簡単で広範なサポート・オプションを見つけることができます。 </td> </tr> </tbody> </table> </div> </body> </td></tr> <tr> <td> </td></tr> </table></td> </tr> </table> <table><tr> <td><div><table> <tr><td><div><div> <table> <tr> <td> <table><tr> <td> </td></tr> </table></td> <td> <table><tr> <td> <div> </div> <table> <tbody><tr> <td> Oracle Is The Information Company </td> <td> 会社概要 | Oracle RSS Feeds | 採用情報 | お問い合わせ | サイトマップ | ウェブサイトのご使用条件 | 日本オラクル情報保護方針 | 個人情報保護基本方針/情報保護基本方針</td> </tr> <tr><td> </td></tr> </tbody></table> </td></tr> </table></td> <td> <table><tr> <td> </td></tr> </table></td> </tr> </table> </div> </div></td></tr> </table> </div></td></tr> </table><table></table></td> <td> <table><tr> <td>  </td></tr> </table></td> </tr> </table> <table> <tr> <td> <table></table></td> <td> <table></table><table></table><table> <tr> <td> <table></table></td> <td> <table></table></td> </tr> </table> </td> </tr> </table> <table></table><table><tr> <td> <meta> <meta> <meta> </td></tr> </table> </body>