Oracle WebLogic Server用のエンタープライズ・アプリケーションの開発

This tutorial needs a review. You can open a JIRA issue, or edit it in GitHub following these contribution guidelines.

このチュートリアルでは、IDEを使用して、JSF (JavaServer Faces) 2.xとJPA (Java Persistence API) 2.0を使用するWebアプリケーションを作成し、そのアプリケーションをOracle WebLogic Serverにデプロイする方法を示します。このチュートリアルでは、IDEにWebLogic Serverを登録し、IDEのウィザードを使用してJDBCリソース、エンティティ・クラスおよびBeanクラスを作成します。その後、IDEを使用してサーバーにアプリケーションをデプロイし、新しいデータソースを登録します。

netbeans stamp 80 74 73
Figure 1. このページの内容は、NetBeans IDE 7.2、7.3、7.4および8.0に適用されます

このチュートリアルに従うには、次のソフトウェアとリソースが必要です。

ソフトウェアまたはリソース 必須バージョン

NetBeans IDE

7.2、7.3、7.4、8.0、Java EE

Java Development Kit (JDK)

バージョン6または7

Oracle WebLogic Server

11g リリース1 (10.3.4、10.3.5)、12c (12.1.1.0)

サンプル・データベース

MySQLまたはJavaDB

注意:

  • このプロジェクトでは、MySQLまたはJavaDBデータベース・サーバー向けに用意された* sample *データベースを使用します。IDEでのMySQLデータベースの使用およびデータベース接続の作成の詳細は、MySQLデータベースへの接続のチュートリアルを参照してください。または、JavaDB sample データベースへのデータベース接続を使用することもできます。これは、IDEのインストール時にGlassFishサーバーをインストールした場合に、デフォルトでIDEに登録されています。

Oracle WebLogic Serverの登録

このチュートリアルでは、Oracle WebLogic ServerにWebアプリケーションをデプロイします。IDEからWebLogic Serverにアプリケーションをデプロイするには、サーバーのインスタンスをIDEに登録する必要があります。この項では、IDEの「サーバー・インスタンスの追加」ウィザードを使用してWebLogic Serverのインスタンスを登録する方法について説明します。

サーバーのダウンロードとインストール

サーバーを登録する前に、WebLogic Serverのインストーラをダウンロードし、Oracle WebLogic Serverインストレーション・ガイドで説明されている手順に従って、サーバーをローカル・マシンにインストールする必要があります。サーバーのインストールに加え、サーバーをIDEに登録する前にWebLogicドメインを作成する必要があります。

  1. Oracle WebLogic Serverのダウンロード・ページからインストーラをダウンロードします。

  2. Oracle WebLogic Serverインストレーション・ガイドの手順に従って、サーバーをインストールします。

ユーザー名とパスワードを必ずメモしておいてください。

  1. WebLogicドメインを作成します。

ドメインの作成には、WebLogic構成ウィザードのグラフィカル・モードを使用できます。

サーバーのインストールと設定の詳細は、WebLogic Serverインストレーション・ガイドの次に示す項を参照してください。

IDEへのサーバーの登録

サーバーをインストールした後、「サーバー・インスタンスの追加」ウィザードを使用して、サーバー・ドメインを指定することによってサーバーのインスタンスを登録できます。

  1. 「サービス」ウィンドウを開きます。

  2. 「サーバー」ノードを右クリックし、「サーバーを追加」を選択します。

  3. 「Oracle WebLogic Server」を選択します。「次」をクリックします。

  4. 「参照」をクリックし、サーバーのインストールが含まれているディレクトリを指定します。「次」をクリックします。

IDEはサーバー・インスタンスのドメインを自動的に特定します。

  1. ドメインのユーザー名とパスワードを入力します。

  2. JPA 2.0を有効にします(WebLogic Server 10.3.4または10.3.5のみ)。「終了」をクリックします。

*注意:*WebLogic Server 12c (12.1.1.0)のインスタンスを登録する場合、JPA 2.0はデフォルトで有効になるため、有効にする必要はありません。WebLogic Server 11g リリース1 (10.3.4または10.3.5)のインスタンスを登録する場合は、サーバーの登録時か、サーバーの登録後にサーバー・マネージャで、JPA 2.0を有効にできます。詳細は、後述の「Oracle WebLogic Server 11gでのJPA 2.0のサポートの有効化」を参照してください。

add weblogic server2
Figure 2. 「サーバーの追加」ウィザード

「終了」をクリックすると、「サービス」ウィンドウの「サーバー」ノードにOracle WebLogic Serverが表示されます。

Oracle WebLogic Serverのノードを右クリックすると、次のような様々なアクションを実行できます。

  • サーバーを起動および停止する

  • ブラウザで管理コンソールを開く

  • IDEの「出力」ウィンドウでサーバー・ログを表示する

weblogic services window1
Figure 3. 「サービス」ウィンドウのWebLogic Server

管理コンソールを開く

この課題では、WebLogic Serverの管理コンソールをブラウザで開きます。管理コンソールでは、サーバー設定を構成したり、デプロイ済アプリケーションおよび使用可能なリソースを表示したりできます。

  1. 「サービス」ウィンドウでOracle WebLogic Serverのノードを右クリックし、「起動」を選択しすることで、サーバーを起動します。

サーバーを起動すると、「出力」ウィンドウの「Oracle WebLogic Server」タブでサーバー・ログを確認できます。

このタブが表示されていない場合は、Oracle WebLogic Serverのノードを右クリックし、「サーバー・ログの表示」を選択します。

  1. Oracle WebLogic Serverのノードを右クリックし、「管理コンソールを表示」を選択します。

「管理コンソールを表示」を選択すると、サーバーのログイン画面がブラウザで開きます。

  1. サーバーのインストール時に指定したユーザー名とパスワードを使用してログインします。

ログインすると、管理コンソールのホーム・ページがブラウザに表示されます。

admin console1
Figure 4. Oracle WebLogic Server管理コンソール

Oracle WebLogic Server 11gでのJPA 2.0のサポートの有効化

Oracle WebLogic Server 11g (10.3.4、10.3.5)を使用している場合は、JPA (Java Persistence API) 2.0のサポートを有効にし、デフォルトの持続性プロバイダをTopLinkに設定する必要があります。Oracle WebLogic Server 11gはJava EE 5コンテナで、JPA 1.0とJPA 2.0に準拠しています。Oracle WebLogic Server 10.3.4および10.3.5をインストールすると、JPA 1.0がデフォルトで有効になりますが、WebLogic ServerのインストールにはJPA 2.0をサポートするために必要なファイルが含まれています。WebLogic ServerのJPA 2.0は、サーバー・インスタンスの登録時またはIDEのサービス・マネージャで有効にできます。または、WebLogic ServerのドキュメントのWebLogic ServerにおけるJPA 2.0とTopLinkの併用の手順に従うこともできます。

WebLogic ServerはJPA (Java Persistence API)をサポートし、Oracle TopLinkとKodoの持続性ライブラリがバンドルされています。この課題では、WebLogic Serverの管理コンソールで、デフォルトの持続性プロバイダをKodoからOracle Toplinkに変更します。

*注意:*WebLogic Server 12cをインストールする場合、TopLinkとJPA 2.0サポートはデフォルトで有効になります。

サーバー・マネージャでJPA 2.0のサポートを有効にし、デフォルトの持続性プロバイダを設定するには、次の手順を実行します。

  1. 「サービス」ウィンドウでOracle WebLogic Serverのノードを右クリックし、「プロパティ」を選択してサーバー・マネージャを開きます。

または、メイン・メニューから「ツール」>「サーバー」を選択してサーバー・マネージャを開くこともできます。

weblogic properties enablejpa
Figure 5. サーバー・マネージャの「ドメイン」タブ

サーバー・マネージャの「ドメイン」タブでは、ユーザー名とパスワードを表示および変更できます。

  1. 「JPA 2を有効化」をクリックします。「閉じる」をクリックします。

「JPA 2を有効化」をクリックすると、IDEでWebLogic Serverのクラスパスが変更され、JPA 2のサポートを有効にするためのファイルが追加されます。

*注意:*Oracle Smart Updateを使用するか、WebLogicクラスパスを手動で変更することで、JPA 2.0を有効にすることもできます。JPA 2.0サポートの有効化の詳細は、次のリンクを参照してください。

admin console jpa
Figure 6. Oracle WebLogic Server管理コンソールの「JPA」タブ

「保存」をクリックすると、アプリケーションで明示的に持続性プロバイダが指定されていない場合には、サーバーにデプロイされたアプリケーションのデフォルトの持続性プロバイダはOracle TopLinkになります。

*注意:*このチュートリアルのアプリケーションは、JTA (Java Transaction API)を使用してトランザクションを管理します。JTAはWebLogicのインストール時にデフォルトで有効になっています。JTAの設定は、ドメインの「構成」タブの「JTA」タブで変更できます。

Webアプリケーションの作成

このチュートリアルでは、Java EE Webアプリケーションを作成します。このWebアプリケーションには、sampleデータベースの表に基づくエンティティ・クラスが含まれます。データベースへの接続を作成した後で、持続性ユニットを作成し、IDEのウィザードを使用してデータベースからエンティティ・クラスを生成します。次に、ウィザードを使用して、エンティティ・クラスに基づいてJSFページを作成します。

プロジェクトの作成

この課題では、新規プロジェクト・ウィザードを使用してWebアプリケーションを作成し、Oracle WebLogic Serverをターゲット・サーバーとして指定します。

  1. 「ファイル」>「新規プロジェクト」([Ctrl]-[Shift]-[N]、Macの場合は[⌘]-[Shift]-[N])を選択します。

  2. 「Java Web」カテゴリから「Webアプリケーション」を選択します。「次」をクリックします。

  3. プロジェクト名として「WebLogicCustomer」と入力し、プロジェクトの場所を指定します。

  4. 専用フォルダを使用するオプションが選択されている場合は選択を解除します。「次」をクリックします。

  5. 「サーバー」ドロップダウン・リストから「Oracle WebLogic Server」を選択します。

  6. 「Java EEバージョン」に*「Java EE 5」または「Java EE 6 Web」*を選択します。「次」をクリックします。

*注意:*Java EE 6 Webは、WebLogic Server 12 cのインスタンスを登録した場合にのみ使用可能です。

new project ee6
Figure 7. 新規プロジェクト・ウィザードで選択されたWeblogic
  1. JavaServer Facesフレームワークを選択します。

  2. 「サーバー・ライブラリ」ドロップダウン・リストから「JSF 2.x」を選択します。「終了」をクリックします。

projectwizard serverlib
Figure 8. 新規プロジェクト・ウィザードの「フレームワーク」パネル

「終了」をクリックすると、IDEによってWebアプリケーション・プロジェクトが作成され、 index.xhtml がエディタに表示されます。「プロジェクト」ウィンドウで、 weblogic.xml ディスクリプタ・ファイルおよび web.xml が「構成ファイル」ノードに作成されたことを確認できます。

wl projects window1
Figure 9. 「プロジェクト」ウィンドウで選択されたweblogic.xml

エディタで web.xml を開くと、 faces/index.xhtml がデフォルトのindexページとして指定されていることが確認できます。 weblogic.xml をエディタで開くと、ファイルは次のような内容です。

<?xml version="1.0" encoding="UTF-8"?>
<weblogic-web-app xmlns="http://xmlns.oracle.com/weblogic/weblogic-web-app" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd http://xmlns.oracle.com/weblogic/weblogic-web-app http://xmlns.oracle.com/weblogic/weblogic-web-app/1.0/weblogic-web-app.xsd">
  <jsp-descriptor>
    <keepgenerated>true</keepgenerated>
    <debug>true</debug>
  </jsp-descriptor>
  <context-root>/WebLogicCustomer</context-root>
</weblogic-web-app>

注意:

  • weblogic.xml ファイルに <fast-swap> 要素が含まれている場合、 <enabled> 要素の値が*false*であることを確認し、 fast-swap が無効であることを確認します。

    <fast-swap>
        <enabled>*false*</enabled>
    </fast-swap>
  • ターゲット・サーバーがWebLogic Server 11g (10.3.4または10.3.5)の場合、サーバーのインストールにJSF 1.2とJSF 2.xをアプリケーションで使用するために必要なライブラリが含まれますが、これらはデフォルトでは非アクティブ化されています。JSF 2.xライブラリの使用を開始する前に、ライブラリのデプロイとインストールを行う必要があります。新規プロジェクト・ウィザードでライブラリを選択すると、ライブラリがまだインストールされていない場合はIDEでメッセージが表示され、ライブラリをインストールできます。ライブラリをインストールする必要があるのは1回のみです。

install libraries dialog
Figure 10. 「不足しているサーバー・ライブラリの問題を解決」ダイアログ

アプリケーションの作成後、 weblogic.xml ディスクリプタ・ファイルを表示すると、IDEによってファイルが変更され、アプリケーションで使用されるJSFライブラリが指定されていることがわかります。

<?xml version="1.0" encoding="UTF-8"?>
<weblogic-web-app xmlns="http://www.bea.com/ns/weblogic/90" xmlns:j2ee="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.bea.com/ns/weblogic/90 http://www.bea.com/ns/weblogic/90/weblogic-web-app.xsd">
  <context-root>/WebLogicCustomer</context-root>
  *<library-ref>
      <library-name>jsf</library-name>
      <specification-version>2.0</specification-version>
      <implementation-version>1.0.0.0_2-0-2</implementation-version>
      <exact-match>true</exact-match>
  </library-ref>*
</weblogic-web-app>

データベース接続の作成

このチュートリアルでは、MySQLデータベース・サーバーで実行される*sample*という名前のデータベースを使用します。この課題では、IDEを使用してこのデータベースを作成し、データベース表を生成します。次に、このデータベースへのデータベース接続を開きます。IDEはデータベース接続の詳細を使用して、アプリケーションの持続性ユニットを作成します。IDEでのMySQLデータベースの使用に関する詳細は、MySQLデータベースへの接続のチュートリアルを参照してください。

*注意:*または、IDEのインストール時にGlassFishサーバーをインストールした場合は、JavaDBデータベース・サーバー上のsampleデータベースへのデータベース接続が自動的に登録されるため、それを使用することもできます。

この課題では、データベースへの接続を作成して開きます。

  1. 「サービス」ウィンドウでMySQLサーバーのノードを右クリックし、「接続」を選択します。

  2. ユーザー名とパスワードを入力します。「OK」をクリックします。

  3. 「MySQLサーバー」ノードを右クリックし、「データベースを作成」を選択します。

  4. 「新規データベース名」ドロップダウン・リストで「sample」を選択します。「OK」をクリックします。

create db
Figure 11. 「データベースを作成」ダイアログ・ボックス

*注意:*データベースの構成によっては、新しいデータベースに対するアクセス権を明示的に指定する必要がある場合があります。

「OK」をクリックすると、sampleデータベースが作成され、データベース表が生成されます。MySQLサーバーのノードを展開すると、データベースのリストに新しい sample データベースが追加されていることがわかります。

  1. MySQLサーバーのノードを展開し、sampleデータベースを右クリックし、「接続」を選択します。

「接続」をクリックすると、そのデータベースに対するデータベース接続ノードが「データベース」ノードの下に表示されます。ノードを展開すると、データベース表を表示できます。

services window2
Figure 12. 「サービス」ウィンドウのsampleデータベース・ノード

IDEはデータベース接続を使用してデータベースに接続し、データベースの詳細を取得します。また、IDEはデータベース接続の詳細を使用してXMLファイルも作成し、WebLogic Serverはこれを使用してサーバーにデータ・ソースを作成して適切なドライバを特定します。

MySQLデータベースをインストールしていない場合は、JavaDBで実行される sample データベースを使用できます。 sample データベースが存在しない場合は、MySQL (またはJavaDB)ノードを右クリックし、「データベースを作成」を選択します。

詳細は、MySQLデータベースへの接続のチュートリアルを参照してください。

持続性ユニットの作成

アプリケーション内の持続性を管理するには、持続性ユニットの作成と、使用するデータ・ソースとエンティティ・マネージャの指定のみが必要で、エンティティと持続性の管理作業はコンテナに任せます。持続性ユニットは、 persistence.xml で定義することによって作成します。

*注意:*デモンストレーションのために、この課題では新規持続性ユニット・ウィザードを使用して persistence.xml ファイルを作成します。このウィザードを利用して、持続性ユニットのプロパティを指定できます。データベースからの新規エンティティ・クラス・ウィザードで持続性ユニットを作成することもできます。持続性ユニットが存在しない場合、このウィザードはプロジェクトの持続性ユニットを作成するオプションを表示します。このウィザードでは、WebLogic Serverのデフォルトの持続性プロバイダを使用する持続性ユニットが作成されます。

  1. 「プロジェクト」ウィンドウでプロジェクトのノードを右クリックし、「プロパティ」を選択します。

  2. 「プロパティ」ウィンドウの「ソース」カテゴリで、「ソース/バイナリ形式」として「JDK 6」を選択します。「OK」をクリックします。

  3. 「新規ファイル」([Ctrl]-[N]、Macの場合は[⌘]-[N])を選択して新規ファイル・ウィザードを開きます。

  4. 「持続性」カテゴリから「持続性ユニット」を選択します。「次」をクリックします。

  5. ウィザードが提案する持続性ユニットのデフォルト名のままにしておきます。

  6. 「持続性プロバイダ」ドロップダウン・リストで「EclipseLink」を選択します。

  7. 「データ・ソース」ドロップダウン・リストで「新しいデータ・ソース」を選択します。

  8. 「新しいデータ・ソース」ダイアログ・ボックスで、JNDI名に「jdbc/mysql-sample」と入力します。

  9. MySQL sampleデータベース接続を選択します。「OK」をクリックしてダイアログ・ボックスを閉じます。

  10. 新規持続性ユニット・ウィザードで「終了」をクリックします。

new persistence eclipselink1
Figure 13. 新規持続性ユニット・ウィザード

「終了」をクリックすると、プロジェクトのための persistence.xml が作成され、エディタに表示されます。エディタのツールバーで「ソース」をクリックし、XMLソース・エディタで persistence.xml を開きます。このファイルには、アプリケーションのエンティティおよび持続性を管理するためにサーバーが必要とする情報がすべて含まれています。

*注意:*既存のデータソースを使用しない場合は、サーバー上にデータソースを作成するための詳細(データベースのJDBCドライバなど)が含まれるXMLファイル(たとえば、 datasource-1-jdbc.xml )が、IDEによって「サーバー・リソース」ノードに生成されます。

``persistence.xml`` をXMLソース・エディタで開くと、持続性のバージョンは2.0、スキーマは ``persistence_2_0.xsd`` として指定されていることがわかります。IDEは、 ``persistence.xml`` 内に持続性プロバイダとして ``org.eclipse.persistence.jpa.PersistenceProvider`` を指定します。EclipseLinkはOracle TopLinkの持続性のプライマリ実装で、JPAのリファレンス実装です。
<?xml version="1.0" encoding="UTF-8"?>
<persistence *version="2.0"* xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/*persistence_2_0.xsd*">
  <persistence-unit name="WebLogicCustomerPU" transaction-type="JTA">
    <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
    <jta-data-source>jdbc/mysql-sample</jta-data-source>
    <exclude-unlisted-classes>false</exclude-unlisted-classes>
    <properties>
      <property name="eclipselink.ddl-generation" value="create-tables"/>
    </properties>
  </persistence-unit>
</persistence>

ウィザードで「TopLink」を選択することもでき、その場合ウィザードは、 persistence.xml 内の持続性プロバイダとして oracle.toplink.essentials.PersistenceProvider を指定します。IDEはOracle TopLink Essentials - 2.0.1ライブラリをクラスパスに追加します。Oracle TopLinkの現在および将来のバージョンでは、Oracle TopLink EssentialsはEclipseLinkで置き換えられます。可能な場合は、Oracle TopLink EssentialsのかわりにOracle TopLink/EclipseLinkを使用してください。

エンティティ・クラスの作成

ここでは、データベースからのエンティティ・クラス・ウィザードを使用して、リレーショナル・データベースに基づいたエンティティ・クラスを作成します。

  1. 「新規ファイル」([Ctrl]-[N])を選択し、新規ファイル・ウィザードを開きます。

  2. 「持続性」カテゴリから「データベースからのエンティティ・クラス」を選択します。「次」をクリックします。

  3. データベースからのエンティティ・クラス・ウィザードで、「データ・ソース」ドロップダウン・リストから「jdbc/mysql-sample」を選択し、必要に応じてパスワードを入力します。

  4. 「使用可能な表」から*Customer*表を選択し、「追加」をクリックします。「次」をクリックします。

    ``customer`` 表とそれに関連する表がウィザードの「選択した表」の下に一覧表示されます。
    1. 生成されるクラスのパッケージとして「ejb」と入力します。「終了」をクリックします。

「終了」をクリックすると、選択した各表のエンティティ・クラスがIDEによって生成されます。 ejb ソース・パッケージ・ノードを展開すると、生成されたエンティティ・クラスを表示できます。

JSFページの生成

この課題では、ウィザードを使用して、既存のエンティティ・クラスに基づいたJSFページを生成します。

  1. プロジェクト・ノードを右クリックし、「新規」>「その他」を選択します。

  2. 新規ファイル・ウィザードの「JavaServer Faces」カテゴリで、「エンティティからのJSFページ・クラス」を選択します。「次」をクリックします。

  3. 使用可能なすべてのエンティティのJSFページを作成するために、「すべてを追加」をクリックします。「次」をクリックします。

  4. セッションBeanおよびJPAコントローラ・クラスのパッケージに「web」と入力します。「終了」をクリックします。

「終了」をクリックすると、JSF 2.0ページおよびそれらのJSFページのコントローラ・クラスとコンバータ・クラスが生成されます。IDEによってエンティティ・クラスごとにJSFページのセットがデフォルトWebページ・ディレクトリに生成されます。また、IDEは、各エンティティに対する管理対象Beanクラスも生成します。これは、エンティティに対応するセッション・ファサード・クラスにアクセスします。

プロジェクトの実行

この課題では、Webアプリケーションをビルドし、WebLogic Serverにデプロイします。アプリケーションのビルド、デプロイおよび起動には、IDEの「実行」コマンドを使用します。

  1. プロジェクトのノードを右クリックし、「実行」を選択します。

「実行」をクリックすると、IDEによってプロジェクトがビルドされ、WARアーカイブがWebLogic Serverにデプロイされ、新しいJDBCデータ・ソースが作成されて登録されます。アプリケーションの開始ページ(http://localhost:7001/WebLogicCustomer/)がブラウザに表示されます。

browser welcome
Figure 14. ブラウザに表示された開始ページ

管理コンソールにログインすると、「デプロイされたリソース」セクションの「デプロイメント」をクリックして、現在サーバーにデプロイされているリソースの表を確認できます。

adminconsole deployments
Figure 15. WebLogic Server管理コンソールの「デプロイメント」表

各リソースの名前をクリックすると、そのリソースに関する追加の詳細を表示できます。「デプロイメント」表のリソースを削除することもできます。

WebLogic 10.3.4または10.3.5へのデプロイに関する注意.

  • WebLogic Server 10.3.4または10.3.5にアプリケーションをデプロイした場合は、 WebLogicCustomer.war Webアプリケーションおよび jdbc/mysql-sample JDBC構成以外にJSF 2.0ライブラリもサーバーにデプロイされたことが表で確認できます。

admin console deployments
Figure 16. WebLogic Server管理コンソールの「デプロイメント」表
  • 「サービス」ウィンドウでOracle WebLogic Serverのインスタンスを展開すると、そのサーバーにデプロイされているアプリケーションとリソースを表示できます。サーバーにJDBCリソースが作成されていることと、JSFライブラリがインストールされていることがわかります。

weblogic services window2
Figure 17. 「サービス」ウィンドウに表示されたWebLogic Serverのアプリケーションとリソース

アプリケーションのデプロイの詳細は、WebLogic Serverへのアプリケーションのデプロイを参照してください。

関連項目

NetBeans IDEを使用して、Java PersistenceとJavaServer Facesを使用するWebアプリケーションを開発する方法については、次のリソースを参照してください。