14 サンプル・アプリケーションおよびサンプル・コード

WebLogic Serverには、WebLogic Serverの理解や操作に関するいくつかのアプローチを示す一連のコード例およびサンプル・アプリケーションが豊富に用意されています。カスタム・インストールでサーバー・サンプルを選択すると、これらのサンプルやサンプル・アプリケーションがインストールされます。

この章の内容は次のとおりです。

サンプルのインストールと実行

インストール・プログラムで選択することで、デプロイされるサンプル・コード一式で構成される完全なWebLogicドメインを作成できます。

この項には次のトピックが含まれます:

WebLogic Serverサンプル・コードのインストール

WebLogic Serverのインストールを実行する場合は、「完全および例」を選択して、WebLogic ServerとCoherenceのサンプル・コードを取得します。WebLogic Serverのインストールの詳細は、Oracle WebLogic ServerおよびCoherenceソフトウェアのインストールに関する項を参照してください。WebLogic Serverサンプル・ドメインを設定するには、インストール後にプロンプト表示された際にクイック・スタート構成ウィザードを起動します。

インストール・プログラムからクイック・スタート構成ウィザードを自動的に起動せずに、コード例とサンプル・ドメインを後で構成することを選択する場合は、クイック・スタート構成ウィザードを手動で実行できます。『構成ウィザードによるWebLogicドメインの作成』クイック・スタート構成ウィザードの実行に関する項を参照してください。

WebLogic Serverサンプル・ドメインの起動

次のいずれかの手順を使用して、サンプル・サーバーを起動します。これらの手順では、DOMAIN_HOMEは、マシン上のサンプル・ドメインが構成されている場所を表します。たとえば、C:\ORACLE_HOME\user_projects\domainsです。

Windowsの場合: コマンド・シェルを使用し、DOMAIN_HOME\wl_serverディレクトリに移動します。次のコマンドを入力します。

startWebLogic.cmd

UNIX Bourne Shellの場合: DOMAIN_HOME/wl_serverディレクトリに移動します。次のコマンドを入力します。

sh ./startWebLogic.sh

ノート:

デフォルトでは、サンプル・サーバーは、ポート7001を使用して着信接続をリスニングします。MedRecサーバーも、デフォルトで同じリスニング・ポートを使用します。つまり、どちらかのリスニング・ポートを変更せずに両方のドメインを同時に実行することはできません。両方のドメインを同時に実行する場合は、Oracle WebLogic Server管理コンソールを使用して、サンプル・サーバーのリスニング・ポートを7001以外に変更してから再起動します。その結果、サンプル・サーバーと同時に、デフォルトのリスニング・ポートを使用するMedRecサーバーを実行できるようになります。

WebLogic Serverのサンプル・コードの実行

サンプル・コードの構築、デプロイおよび実行について、サンプル・コードに付属の説明を確認します。WebLogic Serverサンプル・ドメインを起動すると、ブラウザが自動的に起動されてWebページが表示されます。このページから、サンプルを参照して、そのサンプルを構築、デプロイ、実行するための情報を取得できます。

表記規則

WebLogic Serverのサンプル・コードを構築、デプロイ、実行するための手順には、プラットフォームによらない方法で、WebLogic Serverのインストール・ディレクトリ、サンプル・ドメインのホーム・ディレクトリ、Apache Derbyなどのエンティティのパス名を指定するための、様々な表記規則が含まれています。

次の規則が使用されます。

  • 通常は、Windowsのコマンド・シェルを対象にした説明が提供されます。UNIXまたはLinuxベースのシェルを使用している場合は、パス名の\/に置き換えてください。

  • ORACLE_HOMEは、WebLogic Serverサーバーのインストール時にOracleホームとして指定したディレクトリ(C:\Oracle\Middleware\Oracle_Homeなど)を表します。

  • WL_HOMEは、Oracle WebLogic Serverの最上位のインストール・ディレクトリを表します。デフォルトのパスは、ORACLE_HOME/wlserverです。(ただし、Oracleホーム・ディレクトリへのWebLogic Serverのインストールは必要ありません。)

  • EXAMPLES_HOMEは、WebLogic Serverのサンプル・コードが構成されているディレクトリを表します。デフォルトのパスはORACLE_HOME\wlserver\samples\serverです。

  • DOMAIN_HOMEは、WebLogic Serverのサンプル・ドメインが構成されているディレクトリを表します。デフォルトのパスは、ORACLE_HOME\user_projects\domainsです。

サンプル・コードのソース・ファイルは、実社会のシナリオと同様に、ドメイン構成ファイルとは別の場所にあります。これらは、EXAMPLES_HOMEディレクトリにインストールされます。

DOMAIN_HOME\wl_serverディレクトリには、WebLogic Serverのサンプル・ドメインが含まれています。このドメインには、アプリケーション、アプリケーションおよびOracle WebLogic Serverの動作方法を定義するXML構成ファイル、および起動スクリプトと環境スクリプトが含まれます。

EXAMPLES_HOME\examples\buildディレクトリには、サンプルとDerbyデータベースで必要なクライアントとサーバー・クラスが含まれています。

WL_HOME\common\derbyディレクトリには、Derby(サンプルで使用するデモンストレーション・データベース)が含まれています。また、データベースを起動および停止するスクリプトも含まれています。Derbyの詳細は、http://db.apache.org/derbyを参照してください。

Java EE 8のサンプル

Oracle WebLogic Serverは、Java Platform, Enterprise Edition (Java EE) 8仕様を完全サポートしています。含まれているJava EE 8の例を使用し、Java EE 8 APIとOracle WebLogic Server固有の機能を実装する方法を詳しく示します。

Java EE 8の例は、次のカテゴリに分類されています。

  • JSON Binding 1.0 - Java API for JSON Binding (JSON-B)をJAX-RSで使用します。

  • Java EE Security 1.0 - バックエンド・データベースを指すようにDatabaseIdentityStoreを構成してから、IdentityStoreとして使用します。

  • JSON Processing 1.1 - JSON Patch、JSON Merge PatchおよびJSON Pointerを使用してJSONドキュメントを更新します。

  • Servlet 4.0 - サーブレット・マッピングAPI、HTTP/2サーバー・プッシュおよびHTTPトレーラ・ヘッダーAPIを使用します。

  • JAX-RS 2.1 - 新しいServer-Sent Events (SSE)および新しいRESTリアクティブ・クライアントAPIを使用します。

  • JSF 2.3 - JSF 2.3の新機能(WebSocketの直接サポート、クラスレベルのBean検証、CDI互換@ManagedPropertyアノテーション機能、Javaの日付と時刻など)を使用します。

  • JPA 2.2 - @AttributeConverterアノテーションへの注入やJava EE 8の新しいDateTimeを使用します。QueryTypedQueryの結果をストリームとして取得するためのサポートも使用します。

  • CDI 2.0 - 非同期イベントを使用し、順序を監視して、インターセプト・ファクトリも使用します。

Java EE 7のサンプル

Oracle WebLogic Serverは、Java Platform, Enterprise Edition (Java EE) 7仕様を完全サポートしています。含まれているJava EE 7の例を使用し、Java EE 7 APIとOracle WebLogic Server固有の機能を実装する方法を詳しく示します。

Java EE 7の例は、次のカテゴリに分類されています。

  • バッチ・アプリケーション処理1.0 - バッチ・ジョブを発行して、発行したジョブに関する情報をJobOperatorインタフェースを使用して取得し、バッチ並列モデルを使用してパーティション化されたジョブ・ステップを実行します。

  • Beanの検証1.1 - Beanの検証グループ制約とメソッド・レベル検証APIを使用します。

  • Contexts and Dependency Injection (CDI) 1.1 - CDIイベントと、@TransactionScopedおよび@Transactionalアノテーションを使用します。

  • 同時実行性ユーティリティ1.0 - ContextServiceインタフェースを使用して動的なプロキシ・オブジェクトを作成し、ManagedExecutorServiceインタフェースを使用してタスクを発行し、ManagedScheduledExecutorServiceインタフェースを使用して遅延したタスクまたは定期的なタスクを発行し、ManagedThreadFactoryインタフェースを使用してJava EEコンテナから管理対象スレッドを取得します。

  • Enterprise JavaBeans 3.2 - 新しいセッションBeanライフサイクル・コールバック・インターセプタ・メソッドAPIおよびメッセージドリブンBeanを使用して、メソッドのないリスナー・インタフェースを実装します。

  • 式言語3.0 - スタンドアロン環境、静的フィールドまたはメソッド参照、新しい演算子、ラムダ式およびコレクション構成と演算子のサポートを含む新しいEL機能を使用します。

  • RESTful Webサービス(JAX-RS) 2.0 - 非同期処理、フィルタとインターセプタ、およびサーバー送信イベント(SSE) JerseyサポートのためのJava APIを使用します。

  • Java EE Connector Architecture 1.7 - リソース・アダプタを開発し、Java EE Connector Architecture 1.7仕様で定義されたアノテーション付きのコネクタ・リソースをデプロイします。

  • Java Message Service API 2.0 - EJBとサーブレットでJMS APIを使用します。

  • Java Persistence 2.1 - JPAの基準の更新や基準の削除のAPIとストアド・プロシージャAPIを使用します。

  • JSF 2.2 - Java Server Faces (JSF)リソース・ライブラリ規約、ファイル・アップロード、フェイス・フローおよびHTML5機能を使用します。

  • JSON Processing 1.0 - JAX-RSとともにJava API for JSON Processingを使用します。

  • サーブレット3.1 - HTTPプロトコル・アップグレードAPIを使用し、非同期の読取りと書込みに非ブロッキングI/Oを使用し、セッションIDを変更して、カバーされていないHTTPメソッドを処理します。

  • WebSocket - JSON形式のデータの処理、WebSocketエンドポイントでのCDIおよびEJBの使用、クライアントによって送信されるテキストのサーバーによるエコーの有効化、およびWebSocketメッセージングのかわりとしてのHTTPロング・ポーリングへのフォールバックの有効化を実行します。

追加のAPIサンプル

Oracle WebLogic Serverには、追加のJava EE APIおよびOracle WebLogic Server固有の機能の実装方法を示す、一連の例も含まれています。これらの例は、次のカテゴリに分類されています。
  • データベース接続 - データ・ソース、マルチ・データ・ソースおよび行セットを使用します。

  • EJB - ステートレスEJB、ステートフルEJB、エンティティEJB、メッセージドリブンEJB、その他EJBを作成します。

  • 国際化 - シンプル・メッセージ・カタログを使用したアプリケーションを国際化します。

  • メッセージング - JMSトピック、JMSキュー、メッセージドリブンBeanを使用します。

  • リソース・アダプタ - エンティティEJBを使用してJava EEコネクタ・アーキテクチャのリソース・アダプタと対話します。

  • セキュリティ - Java認証・許可サービスのSAMLおよびアウトバウンドと双方向SSLを使用します。

  • トランザクション - JTAを使用した分散トランザクションを実行します(トランザクションには、2つのXAリソースにわたる2フェーズ・コミット・プロトコルを使用します)。

  • Webアプリケーション - 簡単なサーブレットおよびJSPを作成したり、HTTPパブリッシュ/サブスクライブ・サーバーを使用したり、様々なことを行います。

  • Webサービス - JWSアノテーションを使用した様々なWebサービスを作成します。

  • XML - StAX APIおよびXMLBeanを使用します

  • クラスタ - EJBをクラスタリングし、HTTPセッション状態レプリケーションを使用します。

  • Coherence - Coherenceコンテナを使用して、Coherenceアプリケーションをホストします

  • WebLogic - Scripting Tool—WebLogic Scripting Tool (WLST)を使用して、実行中の管理サーバー・インスタンスを構成および管理します。

  • 分割開発 - WebLogic分割開発ディレクトリ構造を使用して、エンタープライズ・アプリケーションのビルド、パッケージ化、デプロイを行います。

  • サービス・コンポーネント・アーキテクチャ - WebLogic SCA、軽量Spring 2.5(またはそれ以降)のコンテナを、主要な機能の多くを示すショッピング・カート・アプリケーションで使用します。

  • Spring - Springにより簡略化された構成をSpringベースのWebアプリケーションで使用します。

Avitek Medical Records

Avitek Medical Record (MedRecとも呼ばれる)は、WebLogic ServerおよびJava EEの機能とベスト・プラクティスを例示する総合的な学習用サンプル・アプリケーションです。Avitek Medical Recordsは、オプションで、WebLogic Serverと一緒にインストールできます。

MedRecは、ORACLE_HOME/user_projects/domains/medrecから起動できます。ORACLE_HOMEは、Oracle WebLogic Serverのインストール時にOracleホームとして指定したディレクトリです。

サンプル・アプリケーションのMedRec (Spring)では、Springフレームワーク・アプリケーションの開発例を示します。

Derbyオープンソース・データベース

Derbyは、JavaやJDBC、SQL標準に基づいたオープン・ソースのリレーショナル・データベース管理システムです。Derbyは、サンプル・アプリケーションやサンプル・コードで使用するデモ用データベースとしてWebLogic Serverにバンドルされています。

Derbyの詳細は、http://db.apache.org/derbyを参照してください。