最後に、このサンプル・アプリケーションを通して紹介した内容のまとめと、いくつかの付録の内容を記載しています。
前述の項では、ADF ToyStoreサンプル・アプリケーションの重要な局面を分析し、MVCアーキテクチャに準拠している一般的なJ2EE Webアプリケーションにおける実際の可動部分を理解しやすいようにしました。 その中で、モデル、ビュー、およびコントローラ層コンポーネントの開発を簡潔にするための様々なOracle JDeveloperの機能を説明しました。 たとえば、JDeveloper は次ような統合的なサポートを提供しています。
UMLによるJavaクラスとADFコンポーネントのモデリング:
コード、メタデータ、およびモデルの 3-Way 完全同期
データベース・スキーマと制約のビジュアル設計
ユーザー・インタフェースとあらゆる種類のビジネス・サービスとのバインド:
ビジネス・サービスのタイプによらず首尾一貫していて、宣言的かつビジュアルなアプローチ
ADF Business Componentsを利用した、ビジネス・サービスの効率的な構築
ADFベースのアプリケーションのさまざまな局面での作成、構成、展開作業:
アプリケーション・ナビゲータ、構造ウィンドウ、プロパティ・インスペクタ、ウィザード、オブジェクト・エディタなどの連動による設計支援
Struts ページフローのビジュアル編集機能:
struts-config.xmlの構成情報の容易な理解と編集支援
Webページ設計をより簡単するJSPページのビジュアル・エディタ
埋込みのOracleAS Containers for J2EE(OC4J)コンテナによる実行とデバッグ:
実行のたびに長期におよぶデプロイの手順がを行li>
自身のJ2EEアプリケーション開発でOracle ADFを最初に使用する際には、その手助けとなる資料やデモ、チュートリアルがOTNのJDeveloperページに用意されています。
また、US-OTN にある 『Oracle by Example Series for Oracle JDeveloper 10g』にも、手順ごとの様々なチュートリアルが用意されています。 『Installing the Sample Schemas and Establishing a Database Connection』ので紹介されているデータベースの設定の手順が完了したら、ADF、JSP、およびStrutsを使用した、次の手順を体験できます。
これらの資料は、JSPページでADFを使用することを中心の議題にしていますが、次の2つのチュートリアルでは、別の2つのクライアント・テクノロジについて説明しています。
| 注意 |
プロジェクトでStrutsを使いこなせるまでにStrutsを学習する時間が十分にとれない開発者の場合、明示的なコントローラ層を使用しない、従来の「Model 1」JSPアプローチでOracle ADFを使用するという選択肢もあります。「Creating a JSP Application with ADF Using a Model 1 Architecture」のチュートリアルでは、この方法でADFを使用する場合の概要を説明しています。 |
Oracle ADFおよびApache Strutsを使用して構築されたADF ToyStoreアプリケーションの詳細を調べて、既存のJ2EEフレームワークをベースとしてJ2EE準拠のアプリケーションをどのように構築するかについて見てきました。 その過程で、我々が実際に、必要なときに記述する最小限のコードとは、当面のビジネス・アプリケーションの問題に直接関わるコードであることがわかりました。 StrutsおよびADFは、自身のフレームワーク・コンポーネントに対して、広範囲においてXMLベースの構成情報を利用しています。そのため、多量のコードを生成することなく、定義情報から多数のフレームワーク動作が起動されるようになり、開発が非常に簡潔になります。
このドキュメントの中で、OracleJDeveloperが、StrutsおよびADFを実際のアプリケーション・シナリオの中で使用するためのすぐれたサポートを提供していることがわかりました。 Oracle Corporationだけでも800人を超える開発者が、Oracle E-Business Suiteの一環としてセルフサービスのWebアプリケーションを作成するために、ADFフレームワークを日常的に使用しています 。
フレームワークベースのJ2EE開発の効果を認識したうえで、「次のアプリケーションを作成する際に、他の方法があるか」を検討してみてください。
| 注意 |
JDeveloperやOracle ADFの使用も含めて、Oracleのテクノロジのより効果的な使用に関してヒントに従う場合は、Oracle Technology Networkの RSS Feeds and Blogsで役に立つリンクを参照してください。 |
DHCP環境を使用して自動的に割り当てられているIPアドレスを取得している場合に、JDeveloperからアプリケーションを実行して、デフォルトのブラウザが起動されても、「ホームページが見つかりません」というHTTPエラーが表示される場合があります。 これは一般的には、ブラウザから埋込みOC4JサーバーのURLとしてローカル・マシンを参照する際に使用されるURLとして、他の方法を選択することで解決します。たとえば、 図64のように、
localhostをURLのマシン名として使用するよう設定を変更します。 この設定ページは、 「ツール→埋込みOC4Jサーバーの設定...」のメニューを選択し、 「起動」カテゴリにアクセスすると表示されます。
商品を参照するためにいずれかのカテゴリをクリックしたときに、次のようなエラー(簡素化するために詳細は省略しています)が表示された場合は、データベースの接続が失敗していることを意味します。 データベースが稼動していることをチェックし、稼動している場合は、セットアップで指定したJDeveloperの2つの接続( toystoreと
toystore_statemgmt)の接続の詳細をさらにチェックします。
500 Internal Server Error
JBO-30003: The application pool (ToyStoreServiceLocal) failed to
checkout
an applicationpplication module due to the following exception:
oracle.jbo.DMLException: JBO-26061: Error while opening JDBC connection.
:
## Detail 0 ##
:
java.sql.SQLException: Io exception: Connection refused
(DESCRIPTION=(TMP=)(VSNNUM=153092608)(ERR=12500)
(ERROR_STACK=
(ERROR=(CODE=12500)(EMFI=4))
(ERROR=(CODE=12560)(EMFI=4))
(ERROR=(CODE=530)(EMFI=4))
(ERROR=(BUF='32-bit Windows Error: 2: No such file or directory'))
)
)
JDeveloperには、Tomcatに対して、ADF Runtimeのライブラリのインストールを支援する機能や、Tomcatサーバーに対してアプリケーション・サーバー接続を定義し、デプロイを支援する機能があります。 具体的にいえば、Tomcatタイプのアプリケーション・サーバー接続が定義されている場合には、マウスを右クリックして、 ToyStoreViewControllerプロジェクトの
ADFToyStore.deployデプロイメント・プロファイル上で
「配布先」オプションをクリックするだけです。
ただし、ToyStoreアプリケーションが使用する、JDBCの2つのデータ・ソース (jdbc/toystoreDSと
jdbc/toystore_statemgmtDS)の構成については、手動で設定する必要があります(Tomcatの場合に限らず、このような、論理的なJDBCデータソース名と物理的なJDBC接続のマッピング作業は、他のJ2EEサーバーでも必要になります)。この項では、Tomcatサーバー上にこれらの2つのデータソースを構成する方法について説明しています。
ADF ToyStoreサンプル・アプリケーションの
web.xmlファイルには、
jdbc/toystoreDSおよび
jdbc/toystore_statemgmtDSというJDBCの2つのリソース参照定義が含まれています。
<resource-ref>
<res-ref-name>jdbc/toystoreDS</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
<resource-ref>
<res-ref-name>jdbc/toystore_statemgmtDS</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
これはJ2EEコンテナに依存しないリソース定義で、これらのリソースのコンテナ固有の設定情報と必ずペアになっています。
/ADFToyStoreというWebアプリケーション・コンテキストに対して、Tomcat固有のデータソース構成の詳細を指定するには、 ファイルを編集し、 TOMCAT_HOME/conf/server.xml<Host>要素の中の、 <Context>の定義を貼り付ける場所を探します。
<Server>
<Service>
<Engine>
<Host>
:
<Context>
<!-- Existing other <Context> entries -->
</Context>
:
<!--
| Paste in Entire <Context> element show below right here
+-->
</Host>
</Engine>
</Service>
</Server>
ここに、次のADF ToyStoreの
<Context>エントリを貼付けます。 JDBCのurlパラメータ部分(@machine:port:sid )を編集して、 TOYSTOREおよび
TOYSTORE_STATEMGMTというユーザーを作成しADF ToyStoreの表をインストールしたデータベースを指すようにします。
<!--
| BEGIN ADF Toy Store Tomcat DataSource Config Section
| Change JDBC URL info to match your database!!
+-->
<Context path="/ADFToyStore" docBase="ADFToyStore">
<Logger className="org.apache.catalina.logger.FileLogger"
prefix="localhost_ADFToyStore."
suffix=".log"
timestamp="true"/>
<Resource name="jdbc/toystoreDS"
auth="Container"
type="oracle.jdbc.pool.OracleConnectionPoolDataSource"/>
<Resource name="jdbc/toystore_statemgmtDS"
auth="Container"
type="oracle.jdbc.pool.OracleConnectionPoolDataSource"/>
<ResourceParams name="jdbc/toystoreDS">
<parameter>
<name>factory</name>
<value>oracle.jdbc.pool.OracleDataSourceFactory</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:oracle:thin:toystore/toystore
@machine:port:sid</value>
</parameter>
</ResourceParams>
<ResourceParams name="jdbc/toystore_statemgmtDS">
<parameter>
<name>factory</name>
<value>oracle.jdbc.pool.OracleDataSourceFactory</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:oracle:thin:toystore_statemgmt/toystore@machine:port:sid</value>
</parameter>
</ResourceParams>
</Context>
<!--
| END ADF Toy Store Tomcat DataSource Config Section
+-->
ADF ToyStoreサンプル・アプリケーションでは、
ToyStoreViewController.jprプロジェクト内に
toystore.controller.TestJDBCDatasourcesという名前のテスト・サーブレットが付随しています。 web.xmlファイルは、このサーブレットを
/testjdbcdatasourcesのパスにマップように、事前構成されています。 このため、ブラウザで次のURLを指定すると、
http://yourtomcatmachine:yourport/ADFToyStore/testjdbcdatasources
必要な2つのデータソースが正しく構成されていれば、ブラウザに次のように表示されます。
Successfully looked-up 'java:comp/env/jdbc/toystoreDS' DataSource
Successfully issued a ROLLBACK command using connection from this datasource
Successfully looked-up 'java:comp/env/jdbc/toystore_statemgmtDS' DataSource
Successfully issued a ROLLBACK command using connection from this datasource
これを確認した後、ブラウザで次のように指定すると、
http://yourtomcatmachine:yourport/ADFToyStore
TomcatでADF ToyStoreサンプル・アプリケーションを実行できます。