Oracle Cloud用のJSF/JPAアプリケーションの作成とデプロイ
概要
- Oracle.comアカウントを持っている。
- Oracle by Exampleのチュートリアル、Signing Up for a Java Cloud Serviceを完了している。
- Oracle by Exampleのチュートリアル、Oracle Cloud向けのNetBeansの構成を完了している。
- Oracle Express 11g Release 2(Oracle XE)データベースとロック解除されたHRスキーマにアクセスできるか、インストール済みである。(この例では、Oracle Database 11gに含まれるHRスキーマを使用します。)Oracleサンプル・スキーマのインストール・ガイドはOracle Database 11gのドキュメント・セットの一部で、http://otn.oracle.comからオンラインでも入手できます。
- SQL Developer(バージョン3.2.2以上)にアクセスできるか、インストール済みである。
- Oracle Database Cloud ServiceドキュメントのセクションUsing SQL Developer for Data Loadingを読んで、SQL DeveloperインスタンスをOracle Database Cloud Service向けに構成済みである。
- Oracleシン・ドライバ、ojdbc6.jarをダウンロードし、ファイルをローカル・ディレクトリ(
C:\Oracle\db\libなど)に保存します。
目的
このチュートリアルでは、NetBeansを使用して、Oracle CloudのJavaServer Faces(JSF)およびJava Persistence API(JPA)テクノロジーを利用するWebアプリケーションを作成、デプロイする方法を説明します。
所要時間
約1時間
はじめに
Oracle Cloudは、パブリック、エンタープライズのPlatform-as-a-Service(PaaS)製品です。Oracle Java Cloud Serviceでは、Java Platform Enterprise Edition 5(Java EE 5)およびJava Platform Enterprise Edition 6(Java EE 6)と関連するテクノロジーがサポートされています。
このチュートリアルでは、Java EE 6の最新バージョンで導入された、Java EE 6の2つのテクノロジー(JSF 2.0とJPA 2.0)を利用するアプリケーションを作成およびデプロイします。Oracle WebLogic Server 11g(10.3.6)とOracle Cloudでは、Java EE 5およびJava EE 6テクノロジーがサポートされているため、Javaアプリケーション開発者が、永続データ・ストレージと組み合わせた高度なフロントエンド・ユーザー・インタフェースを必要とするさまざまなアプリケーションを作成できます。
シナリオ
このチュートリアルでは、NetBeansの統合開発環境(IDE)に組み込まれたウィザードを使用して、JSF 2.0/JPA 2.0の人事(HR)アプリケーションを作成します。WebLogic Server 11gインスタンスで、ローカルでアプリケーションを開発、デプロイ、テストしてから、Oracle Cloudでアプリケーションをデプロイおよびテストします。
前提条件
このチュートリアルを始める前に、以下のことを確認してください。
NetBeansでの、ローカルのOracle XEデータベース・インスタンスとの接続の作成
この項では、Oracle XEのローカル・インスタンスとの接続を作成します。
NetBeansのServicesウィンドウで、「Databases」を右クリックして「New Connection」を選択します。
New Connection Wizardダイアログ・ボックスで、次の手順を実行します。
a. Driverリストから「Oracle Thin」を選択します。
b. 「Add」をクリックします。

注:まだファイルをダウンロードしていない場合は、ダイアログ・ボックスのリンクをクリックします。
Select Driverダイアログ・ボックスで、次の手順を実行します。
a. ojdbc6.jarファイルをダウンロードしたディレクトリを参照します。
b. 「ojdbc6.jar」を選択します。
c. 「Open」をクリックします。

「Next」をクリックします。
Customize Connectionダイアログ・ボックスに、HRデータベース接続の事前移入されたデータが表示されます。
「Test Connection」をクリックして、接続が機能していることを確認します。

"Connection Succeeded"というメッセージが表示されたら、「Finish」をクリックします。

Servicesウィンドウで、新しい接続、「HR」、「Tables」の順に開きます。
表はHRデータベースにあります。
基本のJSF NetBeansアプリケーション・プロジェクトの作成
JSF/JPAプロジェクトを構築するには、まずNetBeansプロジェクト・アプリケーションを作成します。
「File」→「New Project」を選択します。
New Projectダイアログ・ボックスで、次の手順を実行します。
a. Categoriesから「Java Web」を選択します。
b. Projectsから「Web Application」を選択します。
c. 「Next」をクリックします。
New Web Applicationダイアログ・ボックスで、プロジェクト名としてTestJSFJPAと入力し、「Next」をクリックします。
Server and Settings画面で、次の手順を実行します。
a. リストから「Oracle WebLogic Server 10.3.6」を選択します。
b. 「Set Source Level to 1.5」チェック・ボックスの選択を解除します。
c. 「Next」をクリックします。
Frameworks画面で「JavaServer Faces」を選択し、「Finish」をクリックします。
JPAエンティティとJSFページの生成
NetBeansには、開発者がアプリケーションを迅速かつ簡単に作成、取得、更新、削除(CRUD)できる一連のウィザードがあります。開発者はデータベース表から直接JPAエンティティを生成し、次にJSFページを生成して、それらのエンティティでのCRUD操作をサポートできます。このウィザードによって、アプリケーションを迅速に作成して、JSF 2.0およびJPA 2.0テクノロジーのエンド・ツー・エンドのサポートをテストできます。
Projectsウィンドウの「TestJSFJPA」を右クリックして、「New」→「Other」を選択します。

New Fileダイアログ・ボックスで、次の手順を実行します。
a. Categoriesから「Persistence」を選択します。
b. File Typesから「Entity Classes from Database」を選択します。
c. 「Next」をクリックします。

Database Tables画面で、Data Sourceリストから「New Data Source」を選択し、Create Data Sourceダイアログ・ボックスを表示します。

次の手順を実行します。
a. Java Naming and Directory Interface(JNDI)の名前としてjdbc/HRDBと入力します。
b. 「jdbc:oracle:thin」のJDBC接続を選択します。
c. 「OK」をクリックします。

Database Tables画面で、次の手順を実行します。
a. [Ctrl]キーを押して、Available Tablesから「DEPARTMENTS」と「EMPLOYEES」を選択します。
b. 「Add」をクリックします。
DEPARTMENTSとEMPLOYEESに関連する表も選択されます。
「Next」をクリックします。

Entity Classes画面で、パッケージ名としてexample.entityと入力し、「Finish」をクリックします。

エンティティ・クラスの生成が完了したら、Projectsウィンドウで「example.entity」パッケージを展開し、エンティティ・クラスを表示します。

「TestJSFJPA」を右クリックして、「New」→「Other」を選択します。

New Fileダイアログ・ボックスで、次の手順を実行します。
a. Categoriesから「JavaServer Faces」を選択します。
b. File Typesから「JSF Pages from Entity Classes」を選択します。
c. 「Next」をクリックします。

New JSF Pages from Entity Classesダイアログ・ボックスで、「Add All」をクリックして、Available Entity ClassesリストをSelected Entity Classesリストに移動します。

「Next」をクリックします。

Generate JSF Pages and Classes画面で、次の手順を実行します。
a. JPA Controller Packageのパッケージ名としてexample.controlと入力します。
b. JSF Classes Packageのパッケージ名としてexample.viewと入力します。
c. 「Finish」をクリックします。

この時点で、HRデータベース表に関するJSF/JPAアプリケーションが構築されています。このアプリケーションでは、一般的なModel-View-Controllerアーキテクチャ経由でCRUD機能が提供されます。
Oracle Database Cloud Serviceとの接続
Oracle Cloudで作成したアプリケーションを実行するには、まずOracle Database Cloud ServiceにHRスキーマおよびデータを作成する必要があります。Oracle SQL Developerは、Oracle Databaseの開発と管理を簡素化する無償のIDEです。SQL Developerを使用して、ローカルのOracleデータベース(Oracle XEなど)のスキーマとコンテンツをOracle Database Cloud Serviceインスタンスにコピーできます。
SQL Developerで「Connections」を右クリックし、「New Connection」を選択して、ローカルのOracle XEデータベースとの接続を作成します。
New / Select Database Connectionダイアログ・ボックスで、次の手順を実行します。
a. Connection Nameフィールドに「HRDB」と入力します。
b. Usernameフィールドにhrと入力します。
c. Passwordフィールドにhrと入力します。
d. 「Connect」をクリックします。

Connectionsタブで、「HRDB」と「Tables」を開きます。
「HRDB」を閉じて、次の手順を完了しやすくします。
ブラウザで、2つのサービスがあるOracle Cloudアカウントにログインします。
My Servicesページで、「database」を選択してDatabase Detailsページを開きます。
Database Detailsページで、ホストURLを記録します。
Service SFTP Detailsページで、SFTPホストおよびユーザー名を記録します。
SQL Developerで「Cloud Connections」を右クリックし、「New Cloud Connection」を選択して、Oracle Database Cloud Serviceインスタンスとの接続を作成します。
New Cloud Connectionダイアログ・ボックスで、次の手順を実行します。
a. 接続名としてCloudHRDBと入力します。
b. Oracle Cloudユーザー名を入力します。
c. ホストURLを、Oracle Database Cloud ServiceコンソールのDetailsセクションからURLにコピーします。
d. SFTPユーザー名を、SFTPセクションのUsernameフィールドにコピーします。
e. SFTPホストをHostnameフィールドにコピーします。
f. 「OK」をクリックします。
「CloudHRDB」を開きます。
接続のコンテンツを見ようとするとAuthenticationダイアログ・ボックスが表示され、Oracle Database Cloud Serviceで認証される必要があります。
Oracle Cloudパスワードを入力し、「OK」をクリックします。
Oracle Database Cloud Serviceと接続されます。
「Tables」を開きます。
サービスで提供されるデフォルトの表が表示されます。
Oracleデータベース・インスタンス間のデータベース・スキーマおよびデータのコピー
SQL Developerには、データベース間でデータベース・スキーマおよびデータをコピーできるツールがあります。この機能を使用して、HRデータベース・スキーマおよびデータを、ローカルのOracle XEインスタンスからOracle Database Cloud Serviceインスタンスにコピーします。
「View」→「Cart」を選択します。
「HRDB」と「Tables」を開きます。

[Ctrl]キーを押して、「COUNTRIES」、「DEPARTMENTS」、「EMPLOYEES」、「JOBS」、「LOCATIONS」、および「REGIONS」を選択します。
選択した表をCartウィンドウにドラッグします。
Cartウィンドウにカーソルを置くと、カーソルが矩形に変わります。
「Data」チェック・ボックスを選択して、データもコピーされるようにします。

「Cloud」ボタンをクリックして、選択したHRデータベース・エンティティ・オブジェクトをOracle Database Cloud Serviceにデプロイします。

Deploy Objects to Cloudダイアログ・ボックスで、次の手順を実行します。
a. コピー・プロセスにHRDBCopyなどのタイトルを付けます。
SFTPユーザーのパスワードを入力します。
c. スキーマとデータの送信に使用されるファイルのパスと名前を入力します。
d. 「Replace existing destination objects」を選択します。
e. 「Apply」をクリックします。

プログレス・バーに送信の進捗が表示されます。
「HRDB」接続を閉じて、「CloudHRDB」接続を開きます。

次の手順を実行します。
a. Deploymentsまで下方向にスクロールします。
b. 「Deployments」を開きます。
c. 「HRDBCopy」デプロイメントをダブルクリックします。
デプロイメント・ログが開きます。
ステータスがPROCESSEDに変わるまで、「Refresh」ボタンを定期的にクリックします。

次の手順を実行します。
a. CloudHRDBまで上方向にスクロールします。
b. 「Tables」を選択します。
c. 「Refresh」をクリックします。
Oracle XEインスタンスからコピーした表を、Oracle Database Cloud Serviceインスタンスに作成できました。

Oracle Java Cloud ServiceへのJSF/JPAアプリケーションのデプロイ
データベースをOracle Database Cloud Serviceにコピーできたら、JSF/JPAアプリケーションをOracle Java Cloud Serviceにデプロイできます。
NetBeansで「TestJSFJPA」を右クリックし、「Properties」を選択します。
Project Propertiesダイアログ・ボックスで、Categoriesから「Run」を選択します。

Serverリストから「Oracle Cloud Remote」を選択し、「OK」をクリックします。

「Configuration Files」を開いて「persistence.xml」をダブルクリックし、エディタで開きます。

データソースとしてdatabaseと入力し、ファイルを保存します。

TestJSFJPAを右クリックして、「Clean and Build」を選択します。
「TestJSFJPA」を右クリックして、「Deploy」を選択します。

Outputウィンドウに次のメッセージが表示されます。Deployment was successful.
Oracle CloudでのJSF/JPAアプリケーションの実行
Oracle Cloudにアプリケーションをデプロイできたら、アプリケーションをテストできます。
Servicesウィンドウで、「Oracle Cloud Remote」を開きます。

「TestJSFJPA」を右クリックして「View」を選択し、ブラウザ・ウィンドウを開きます。
Oracle Cloudアカウントにログインします。
ブラウザにアプリケーションが表示されます。
「Show All Employee Items」をクリックして現在の従業員リストを表示します。
従業員の表には、同時に10人の従業員が表示されます。

この表で、アプリケーションがOracle Java Cloud Serviceで実行されており、Oracle Database Cloud Serviceから正常にデータを取得していることを確認できます。
まとめ
- NetBeans経由で、ローカルのOracle XEデータベース・インスタンスと接続する
- JPAエンティティとJSFページを使用するNetBeansウィザードを使用して、アプリケーションを作成する
- SQL Developerを使用して、ローカルのHRデータベース・スキーマおよびデータをOracle Database Cloud Serviceにコピーする
- JSF/JPAアプリケーションを変更して、Oracle Java Cloud Serviceにデプロイする
- Oracle Cloudを使用してJSF/JPAアプリケーションを実行する
- Oracle Cloudのドキュメント
- NetBeansのドキュメント
- Oracle WebLogic Server 11gのドキュメント
- Oracle SQL Developerのドキュメント
- Oracle Cloudについて詳しくは、Oracle Learning Libraryの他のOracle by Example(OBE)を参照してください。
- カリキュラムのおもな開発者:Tom McGinn
このチュートリアルで学習した内容は、次のとおりです。
参考資料
著者
このOracle by Exampleをナビゲートする際、以下の機能を使用できます。
- ヘッダー・ボタンの非表示:
- ヘッダー内のボタンを非表示にするには、タイトルをクリックします。ボタンを再表示するには、もう一度タイトルをクリックします。
- トピック一覧ボタン:
- すべてのトピックの一覧です。いずれかのトピックをクリックすると、その項に移動します。
- すべてのトピックを開く/閉じる:
- すべての項に対する詳細を表示または非表示にします。デフォルトでは、すべてのトピックが閉じられています。
- すべてのイメージを表示/非表示:
- すべてのスクリーンショットを表示または非表示にします。デフォルトでは、すべてのイメージが表示されています。
- 印刷:
- コンテンツを印刷します。現在表示または非表示にされているコンテンツが印刷されます。
このチュートリアルの特定の項に移動するには、一覧からトピックを選択してください。