この章では、Oracle Service BusのMaven原型を使用して、Oracle Service Busアプリケーションを作成、ビルドおよびデプロイする方法について説明します。
この章のトピックは、次のとおりです:
MavenにおけるOracle Service Bus開発プラグインの使用の詳細は、『Oracle Service Busでのサービスの開発』のOracle Service Bus開発Mavenプラグインの使用に関する項を参照してください。
Oracle Service Busには、1つのMavenプラグインおよび3つの原型が提供されています。表14-1に、Maven座標を示します。
表14-1 Oracle Service BusでのMaven座標
| アーティファクト | groupId | artifactId | version |
|---|---|---|---|
|
OSBプラグイン |
com.oracle.servicebus |
oracle-servicebus-plugin |
12.2.1-0-0 |
|
OSBアプリケーション原型 |
com.oracle.servicebus |
oracle-servicebus-application |
12.2.1-0-0 |
|
OSBプロジェクト原型 |
com.oracle.servicebus |
oracle-servicebus-project |
12.2.1-0-0 |
|
OSBシステム・リソース原型 |
com.oracle.servicebus |
oracle-servicebus-system |
12.2.1-0-0 |
Oracle Service Busプラグインは、次のゴールをサポートします。
| ゴール | 目的 |
|---|---|
| package | プロジェクトからService Busアーカイブ(SBAR)ファイルを作成します。 |
| deploy | ランタイム環境へSBARファイルをデプロイします。Mavenでは、ランタイム環境へのデプロイメントは通常pre-integration-testで行われるため、このゴールは、deployフェーズではなく、デフォルト・ライフサイクルのpre-integration-testフェーズにマップされていることに注意してください。 |
カスタム・パッケージング・タイプsbarが定義されていて、Oracle Service Busアーカイブを示しています。
OSB Application Maven原型を使用して新規Oracle Service Busアプリケーション(OSBプロジェクトおよびOSBシステム・リソース・プロジェクトを含む)を作成するには、次のようなコマンドを実行します。
mvn archetype:generate
-DarchetypeGroupId=com.oracle.servicebus.archetype
-DarchetypeArtifactId=oracle-servicebus-application
-DarchetypeVersion=12.2.1-0-0
-DgroupId=org.mycompany
-DartifactId=my-servicebus-application
-Dversion=1.0-SNAPSHOT
-DprojectName=my-project
-DconfigJar=myjar.jar
このコマンドにより、原型から新規プロジェクトを作成できるようにする、Mavenのarchetype:generateゴールが実行されます。表14-4に、パラメータを示します。
表14-2 Oracle Service Busプロジェクトのパラメータ
| パラメータ | 目的 |
|---|---|
|
archetypeGroupId |
新規プロジェクトの作成に使用する原型のgroupId。これは、前の例に示したように、 |
|
archetypeArtifactId |
新規プロジェクトの作成に使用する原型のartifactId。これは、前の例に示したように、 |
|
archetypeVersion |
新規プロジェクトの作成に使用する原型のバージョン。これは、前の例に示したように、 |
|
groupId |
新規プロジェクト用のgroupId。通常、これは組織のドメイン名を逆にした形式で始まります。 |
|
artifactId |
新規プロジェクト用のartifactId。通常、これはプロジェクトの識別子です。 |
|
version |
新規プロジェクト用のversion。新規プロジェクトの場合、これは通常 |
|
projectName |
アプリケーション内に作成するOSBプロジェクトの名前。これはアプリケーションの名前(つまり、 |
|
-DconfigJar |
プリコンパイル済のsbconfig.jarまたは.sbarファイルを指定するために使用されます。この設定によって、事前のフレッシュ・ビルドなしで個々のjarファイルをデプロイできます。これは絶対パスである可能性があります。 この設定では-DprojectNameも設定されていることが必要です。 |
また、次の例に示すように、引数なしでコマンドを実行することもできます。この場合、Mavenでは、使用可能な原型のリストが表示され、必要な情報の入力を求められます。
mvn archetype:generate
アプリケーションの作成後、アプリケーションには次のファイルが含まれます。

表14-3ではプロジェクトに含まれるファイルについて説明します。
表14-3 Oracle Service Busプロジェクト用に作成されたファイル
| ファイル | 目的 |
|---|---|
|
pom.xml |
新規アプリケーションについて記述するMavenプロジェクト・オブジェクト・モデル(POM)ファイル。アプリケーションに指定したMaven座標が含まれます。このPOMは、このアプリケーションの一部を形成するすべてのOSBプロジェクトをグループ化するために使用されます。 |
|
my-project/pom.xml |
新規プロジェクトについて記述するMaven POMファイル。プロジェクトに指定したMaven座標が含まれ、Oracle Service Bus Mavenプラグインを使用してプロジェクトをsbarファイルにビルドするための適切なプラグイン定義も含まれます。 |
|
System/pom.xml |
sbarファイルにOSBシステム・リソースをビルドするMavenプロジェクト・オブジェクト・モデル(POM)ファイル。 |
Oracle JDeveloperでアプリケーションを編集して、OSBリソースを定義することができます。アプリケーションを開く手順は、次のとおりです。
「ファイル」メニューを開き、「インポート」を選択します。
「インポート」ダイアログ・ボックスで、「Mavenプロジェクト」オプションを選択し、「OK」をクリックします。
次の図に示すように「Mavenプロジェクトのインポート」ダイアログが表示されます。

「ルート・ディレクトリ」フィールドに、JDeveloperにインポートするアプリケーションのパスを入力します。
「設定ファイル」フィールドにMavenのsettings.xmlファイルのパスを入力します。Maven設定ファイルの場所に標準でない場所を使用していないかぎり、ほとんどの場合デフォルト値が適切です。
「リフレッシュ」をクリックして、その場所で使用できるプロジェクトのリストをロードします。
インポートするプロジェクトを選択します。「インポートしたPOMファイルと同期するために既存のJDeveloperプロジェクトを更新します。」も選択します。
「OK」をクリックして、インポートを完了します。
JDeveloperでアプリケーションが開かれました。
Oracle Service Busアプリケーション(またはプロジェクト)をJDeveloperにインポートする場合、新規アプリケーション(またはプロジェクト)ディレクトリを作成するか、または単に既存の場所にJDeveloperプロジェクト・ファイル(jwsファイルおよびjprファイル)を作成するかの選択肢があります。
新規のディレクトリにアプリケーション(またはプロジェクト)の新規コピーを作成するには、「アプリケーションにソース・ファイルもインポートします。」オプションを選択して、インポート・ダイアログ・ボックスに新規のディレクトリを指定します。
既存のディレクトリにJDeveloperファイルを作成するには、「アプリケーションにソース・ファイルもインポートします。」オプションを選択しないで、プロジェクトの場所を求められたときに既存のディレクトリを選択します。
OSBプロジェクトMaven原型を使用して既存のOSBアプリケーション内に新規Oracle Service Busプロジェクトを作成するには、OSBアプリケーション・ルート・ディレクトリから次のようなコマンドを発行してください。
mvn archetype:generate -DarchetypeGroupId=com.oracle.servicebus.archetype -DarchetypeArtifactId=oracle-servicebus-project -DarchetypeVersion=12.2.1-0-0 -DgroupId=org.mycompany -DartifactId=my-second-project -Dversion=1.0-SNAPSHOT
このコマンドにより、原型から新規プロジェクトを作成できるようにする、Mavenのarchetype:generateゴールが実行されます。表14-4に、パラメータを示します。
表14-4 Maven原型からのOracle Service Busプロジェクトのパラメータ
| パラメータ | 目的 |
|---|---|
|
archetypeGroupId |
新規プロジェクトの作成に使用する原型のgroupId。これは、前の例に示したように、 |
|
archetypeArtifactId |
新規プロジェクトの作成に使用する原型のartifactId。これは、前の例に示したように、 |
|
archetypeVersion |
新規プロジェクトの作成に使用する原型のバージョン。これは、前の例に示したように、 |
|
groupId |
新規プロジェクト用のgroupId。通常、これは組織のドメイン名を逆にした形式で始まります。 |
|
artifactId |
新規プロジェクト用のartifactId。通常、これはプロジェクトの識別子です。システム・リソース用に予約しているSystemにすることはできません。 |
|
version |
新規プロジェクト用のversion。新規プロジェクトの場合、これは通常 |
また、次の例に示すように、引数なしでコマンドを実行することもできます。この場合、Mavenでは、使用可能な原型のリストが表示され、必要な情報の入力を求められます。
mvn archetype:generate
OSBプロジェクトはOSBアプリケーション内に存在している必要があることに注意してください。
プロジェクトの作成後、プロジェクトには次のファイルが含まれます。
my-second-project/ |-- pom.xml
次の表ではプロジェクトに含まれているファイルについて説明します。
| ファイル | 目的 |
|---|---|
| pom.xml | 新規プロジェクトについて説明するMavenプロジェクト・オブジェクト・モデル(POM)ファイルであり、プロジェクトに指定したMaven座標が含まれ、OSB Mavenプラグインを使用してプロジェクトをsbarファイルにビルドするための適切なプラグイン定義も含まれています。 |
Mavenは、この新規プロジェクトを含めるためにOSBアプリケーションPOMファイルも更新します。14.2項で作成したアプリケーションで前述のコマンドを実行した場合、OSBアプリケーションPOMに次のように表示されます。
<modules> <module>my-project</module> <module>my-servicebus-project</module> <module>my-second-project</module> </modules>
プロジェクト・コードを記述した後に、Mavenを使用してプロジェクトをビルドできます。
SBARファイルをビルドするには、次のコマンドを実行します。
mvn package -DoracleHome=/path/to/osbhome
前述のコマンドによってプロジェクトからSBARファイルが作成され、次の場所に配置されます。
project/.data/maven/sbconfig.sbar
パッケージ化には、次のパラメータを指定できます。プロジェクトのPOMファイル内で指定するか、または前述の例に示すようにコマンドラインで指定することもできます。
| パラメータ | 目的 |
|---|---|
| oracleHome | Oracle Fusion MiddlewareのOracleホームの場所。 |
SBARファイルをデプロイするには、次のコマンドを実行します。
mvn pre-integration-test
デプロイメントには次のパラメータを指定できます。プロジェクトのPOMファイル内で指定するか、またはコマンドラインで指定することもできます。
| パラメータ | 目的 |
|---|---|
| oracleHome | OSBがインストールされているOracle Fusion MiddlewareのOracleホームの場所。 |
| oracleServerUrl | OSBドメイン内のサーバーのURL。 |
| customization | (オプション)使用するOSBカスタマイズ・ファイル(ある場合)の名前。 |
| oracleUsername | デプロイメントに使用するユーザー名。 |
| oraclePassword | デプロイメントに使用するパスワード。 |
パラメータを指定する手順:
コマンドラインで、例に示しているように-Dパラメータ=値の形式を使用します(コマンド全体を1行で入力するように注意してください)。
mvn pre-integration-test
-DoracleServerUrl=http://test.server:7001
-DoracleUsername=weblogic
-DoraclePassword=welcome1
プロジェクトPOMファイルで、次の例に示すようにpluginセクションを追加します。
<plugins>
<plugin>
<groupId>com.oracle.servicebus</groupId>
<artifactId>oracle-servicebus-plugin</artifactId>
<version>12.2.1-0-0</version>
<extensions>true</extensions>
<configuration>
<oracleHome>/u01/osbhome</oracleHome>
<oracleServerUrl>http://test.server:7001</oracleServerUrl>
<oracleUsername>weblogic</oracleUsername>
<oraclePassword>welcome1</oraclePassword>
</configuration>
</plugin>
</plugins>
OSB親POMはカスタマイズのために提供されています。たとえば、これを使用してテスト・サーバーのURL、ユーザー名およびパスワードなどの環境全体のデフォルトを設定してから、OSB親POMに指定することもできます。
このようなプロパティを設定したり、OSBプロジェクトで有効にする別のプロパティを定義したりすることもできます。OSBプロジェクトPOMのプロパティを参照するには、構文 $propertyNameを使用します。たとえば、次の例では$oracleServerNameはosb_server1に置き換えられます。
OSB原型から作成されたプロジェクトは、上書きしないかぎりOSB親POMの値を自動的に使用します。
いくつかのプロパティを定義するOSB親POMの例を次に示します。
<properties> <!-- These two properties are defined in com.oracle.maven:oracle-common, you can overwrite them here. Users who do not want to add plain text password in their properties or pom file, should use the userConfigFile and userKeyFile options for deployment. <oracleUsername>USERNAME</oracleUsername> <oraclePassword>PASSWORD</oraclePassword> --> <!-- Change the default values according to your environment --> <oracleServerUrl>t3://localhost:7001</oracleServerUrl> <oracleServerName>osb_server1</oracleServerName> <oracleHome>/u01/osbhome</oracleHome> </properties>