カスタム・テクノロジ・アダプタ開発者ガイド
11g リリース1 (11.1.1.7)
B72415-02(原本部品番号:E37383-02)
2013年5月
このドキュメントには、Oracle JDeveloperを使用したカスタム・アダプタの開発およびFusion Middlewareと統合するためのアダプタ・ランタイム・コンポーネントの開発についての情報を示します。
このドキュメントの内容は次のとおりです。
Oracle JCA準拠アダプタは、ビジネス・アプリケーションの統合を可能にし、異種アプリケーション間の相互通信に必要な堅牢、軽量で高度にスケーラブルな標準ベースの統合フレームワークを提供します。自身の要件に基づいて、独自のカスタム・アダプタおよびランタイム・コンポーネントを作成できます。
カスタムJCAアダプタ・ウィザードは、相互作用/アクティブ化の仕様、プロパティおよびデフォルト値を構成ファイルから読み取って表示する汎用アダプタ・ウィザードです。ユーザーは、JDeveloperのデザインタイム・ファシリティを採用して、ウィザードの使用、仕様の選択、デフォルトのプロパティ値のオーバーライドおよびアダプタへの新規プロパティの追加を実行します。
つまり、カスタムJCAアダプタでは、ユーザーから情報を取得し、その情報を使用して、ランタイム・アダプタに必要な相互作用/アクティブ化の仕様およびプロパティが含まれるWSDLファイルおよびJCAファイルを作成する必要があります。
カスタム・アダプタを作成する際に、最初に決定する必要がある事項は、カスタム・アダプタを一方向と双方向のいずれにするか、すなわちアウトバウンド(同期)操作の呼出しをサポートするかどうか、つまりJCA共通クライアント(CCI) APIを使用するかどうかです。あるいは、アダプタでアウトバウンドとインバウンド両方の(非同期)メッセージ・フローをサポートする必要があるかどうかです。
この決断を下し、アウトバウンドおよびインバウンド・メッセージ・フローをサポートするカスタム・アダプタを作成する場合、次の点について認識しておくことが重要です。
アウトバウンド・メッセージ・フローをサポートするには、アダプタでjavax.resource.cci.InteractionSpec
の1つ以上の実装を定義する必要があります。
インバウンド・メッセージ・フローをサポートするには、アダプタでjavax.resource.spi.ActivationSpec
の1つ以上の実装を定義する必要があります。
これらの仕様(Java Beans)はそれぞれ、アダプタでサポートする特定の操作を定義する名前と値のペアとしてメタデータを提供します。
たとえば、FTPアダプタの場合、相互作用の仕様では、Directory
というBeanプロパティが公開されます。FTPアダプタが呼び出された場合、呼出し元は、相互作用の仕様プロパティDirectory
を設定することによって(たとえば、FtpInteractionSpec.setDirectory("/tmp/receive")
を設定することによって)、特定のディレクトリにペイロードを配置するようアダプタに指示することができます。
アダプタで異なる種類またはカテゴリの呼出しがサポートされる場合、それぞれの呼出しで別々のプロパティ・セットが必要であり、javax.resource.cci.InteractionSpec
の個別実装によって各呼出しタイプをモデリングできます。
たとえば、アダプタではさらに、SshFtpInteractionSpec
およびSSLFtpInteractionSpec
を実装できます。1つ目の相互作用の仕様ではS-FTPプロトコルがサポートされ、2つ目の相互作用の仕様ではFTP/Sプロトコルがサポートされます。
この情報およびアダプタでサポートされる操作に関するアダプタ使用の可能性について認識しておくことは、カスタマイズにおいて役立つ一歩となります。
アダプタについてさらに探求を進めると、カスタムJCAアダプタ・ウィザードには、いくつかの用途があることがわかります。
顧客またはサード・パーティ製アダプタのプロバイダは、カスタム・アダプタ・ウィザードをそのまま使用して、自分たちのカスタム・ランタイム・アダプタをサポートできます。この場合、カスタム・アダプタ構成ファイル(customAdapter-config.xml
)を用意(または拡張)することがだけが必要です。
顧客またはサード・パーティ製アダプタ・プロバイダは、より限定的なアダプタの作成が必要な場合、カスタム・アダプタのクラスを拡張できます(たとえば、アダプタに適合するようにテキストを変更できます)。
カスタム・アダプタ・ウィザードは、JCAアダプタ・フレームワークを使用して、SCAEndpointインタフェースにフックすることによって新しいアダプタ・ウィザードを作成する(または古いアダプタ・ウィザードを変換する)簡単な例です。SOA jdev拡張機能をインストールすると、カスタム・アダプタのjavaソース・ファイルは次の場所に配置されます。
<JAVA_HOME>/developer/integration/adapters/samples/custom
アダプタ・デザインタイム・コンポーネントの作成について学ぶ前に、デフォルトのカスタム・アダプタ・ウィザードを構成する画面について理解しておく必要があります。
この項では、ユーザーが標準的なカスタム・アダプタ・ウィザードを使用してアダプタを構成する際にユーザーに表示される画面のウォークスルーを示します。
ユーザーがJDeveloperの「公開されたサービス」スイムレーンまたは「外部参照」スイムレーンに「カスタムJCAアダプタ」アイコンをドロップすると、Jdeveloperにアダプタ構成の「ようこそ」ページが表示されます。
ユーザーは、この「ようこそ」ページで、「次へ」を選択します。
「サービス名」ページが表示されます。ここでユーザーはサービス名を入力できます。
config.xml
に<connection-factory>
エントリが含まれている場合は、カスタム・アダプタ・ウィザードの「接続情報」ページにデフォルトの「コネクション・ファクトリの位置」が表示されます。
アダプタで<connection-factory>
エントリは必須ではありません。config.xml
ファイルに<connection-factory>
エントリが含まれない場合、ユーザーがアダプタのウィザードを実行するときにこのページは表示されません。
「アダプタ・インタフェース」画面では、ユーザーはWSDLを生成するための操作の名前およびスキーマを指定するか、既存のWSDLをインポートできます。
ユーザーが後者を選択した場合、次のスクリーンショットに示すように、WSDLのURL、ポート・タイプおよび操作を指定する必要があります。
ユーザーがカスタム・アダプタの「操作」ページで「インバウンド・アクティブ化」を選択した場合、ユーザーに対してcustomAdapter-config.xml
ファイルに含まれるアクティブ化クラス名(またはこの例のように変換済表示名)のリストが表示され、ユーザーはこのリストから選択できます。
図5 インバウンド操作の操作名および変換済アクティブ化表示名が表示されたアダプタ構成ウィザード
ユーザーがカスタム・アダプタの「操作」ページで「アウトバウンド相互作用」を選択した場合、customAdapter-config.xml
ファイルに含まれる相互作用クラス名(またはこの例のように変換済表示名)のリストが表示され、ユーザーはこのリストから選択できます。
図6 操作名および相互作用名とともにアウトバウンド相互作用が表示されたアダプタ構成ウィザード: 「操作」画面
次のページには、生成されたcustomAdapter-config.xml
に含まれるクラスに関連付けられているプロパティが、前のダイアログで選択したクラス名に基づいて表示されます。
ユーザーは、このページでデフォルト値を変更することも、プロパティの追加または削除を行うこともできます。
カスタム・アダプタの「メッセージ」ページには、「メッセージ」ページがあるその他のアダプタで動作するものと同じ機能が含まれます。このページには、ネイティブ・フォーマットが必要かどうかを示すチェック・ボックス、ネイティブ・フォーマットのスキーマを定義するボックス、メッセージ・スキーマへのURLおよびスキーマ要素が含まれます。
ユーザーが「メッセージ」ページの「終了」を選択すると、「JDeveloper」ウィンドウのSOAダイアグラムに新規カスタムJCAアダプタが表示され、「終了」ページが表示されます。
ユーザーがSOAダイアグラムでカスタムJCAアダプタをダブルクリックすると、同じアダプタ・ウィザードに戻ります。これによって、ユーザーは、前に入力した値を変更できます。
Oracle JDeveloperを使用して、独自のカスタム・アダプタを開発できます。このためには、基本の開発フレームワークについて理解しておく必要があります。
JcaAdapterWizard
拡張クラスを使用すると、初期ウィザード・ページを追加できます。その後はいつでも追加のウィザード・ページを追加できます。たとえば、ほとんどのアダプタ・ウィザードで、操作タイプ(インバウンド/アウトバウンド)の選択後にウィザードのページが追加されます。ユーザーの気が変わって、別の操作タイプを選択した場合、ウィザードのページは削除され、新しいページが追加されます。
各ウィザード・ページで、ユーザー入力が収集されます。また、アダプタ固有のコンテキストを登録して、ウィザード・ページ間で情報を共有できるようにすることも可能です。
ユーザーが「終了」ボタンを選択すると、フレームワークによって各ウィザード・ページで、ページが表示されていた順序でbuildDataModel()
メソッドが呼び出されます。各ページのbuildDataModel()
は、ページの画面データをデータ・モデルにコピーする処理を担当します。
フレームワークによって、データ・モデルからアーティファクトが作成されます。アダプタでは、フレームワークでの処理の終了前または終了後に呼び出すインタフェースを登録することもできます。
注意: アダプタ・フレームワークでは、すべてのWSDL生成が処理されます。(古い) |
次の表とダイアグラムは、カスタム・アダプタを構成する様々なクラスを示しています。この次に、クラスのダイアグラムを示します。
表1 カスタム・アダプタのクラス
クラス | 説明 |
---|---|
SOAダイアグラム |
composite.xmlのグラフィカル・エディタ。 |
SCAエンドポイント |
SOAダイアグラムとアダプタ・フレームワークとの間のプロキシを提供します。 |
JcaAdapterWizard |
初期ウィザード・ページの追加を可能にします。 |
CustomAdapterWizard |
パブリック・メソッドをオーバーライドできるようにJcaAdapterWizardを拡張します。 |
JcaServiceName Page |
「サービス名」ページを提供します。 |
CustomConnectionPage |
コネクション・ファクトリを求めるプロンプトを表示して、この情報をデータ・モデルに格納するページを作成します。 |
CustomWSDLSelectionPage |
デフォルトのWSDLを生成するのではなく、既存のWSDL、ポートタイプおよび操作を選択するオプションをユーザーに与えます。 |
CustomOperationPage |
選択された操作に基づいてウィザードのページを追加したり削除したりします。 |
CustomPropertyPage |
ユーザーがアクティブ化および相互作用の仕様プロパティを設定できるようにします。 |
基本を理解すれば、実装の詳細の理解へと進むことができます。
SCAEndpoint
は、JDeveloperの「コンポーネント・パレット」から新規アダプタがSOAダイアグラムにドロップされたとき(SCAEndpoint.createImplementation
)、既存のアダプタがJDeveloperのSOAダイアグラム内でダブルクリックされたとき(setInterfaceInfo
およびdisplayServiceEditor
)またはアダプタがSOAダイアグラムから削除されたとき(SCAEndpoint.delete
)に呼び出されます。
SCAEndpoint
の実装は、SOAダイアグラムとアダプタ・フレームワークとの間のプロキシです。これは、アダプタ・ウィザードのメイン・コンストラクタの呼出しを担当します。
createEndpoint
メソッドおよびupdateEndpoint
メソッドは、JcaAdapterWizard
拡張クラスのdisplay()
メソッドを呼び出します。
この例は、oracle.tip.tools.ide.pm.wizard.adapter.custom.CustomScaEndpointImpl.java
を参照してください。
oracle.tip.tools.ide.pm.wizard.adapter.jca.JcaAdapterWizard
クラスを拡張し、その抽象メソッドを実装することによって、アダプタ・ウィザードでJCAアダプタ・フレームワークを使用できるようになります。
このクラスの抽象メソッドとしては、getAdapterTypeString()
およびgetWelcomeMessage
があり、これらのメソッドによって、汎用ウィザード・ページに必要なテキストが入力されます。
抽象メソッドaddInitialWizardPages()
によって、アダプタ・ウィザードのページが追加されます。このメソッドでは、初期ページ、つまりユーザーの入力に関係なく常にナビゲーション先となるページのみが追加されます。
初期ページは通常、JcaServiceNamePage
,、ConnectionPage
(接続が必要な場合)およびWsdlSelectionPage
(アダプタでサポートされる場合。次の詳細を参照)から開始します。
アダプタでWsdlSelectionPage
がサポートされない場合、最後の初期ウィザード・ページは通常OperationPage
になります。
WsdlSelectionPage
およびOperationPage
でのユーザー入力によって、ウィザードでのナビゲーションを変更できます(つまり、表示されるページを変更できます)。また、ユーザーがこれらのページで「次へ」ボタンを選択したときに、追加のウィザード・ページが追加されます。
オプションで、JcaAdapterWizard
のパブリック・メソッドをオーバーライドできます。これらのメソッドには次のものがあります。
すべてのページで使用可能なアダプタ固有のメソッドを登録するには、getAdapterSpecificContext
をオーバーライドします。
ユーザーが「終了」ボタンを選択したときに呼び出されるようにAdapterWizardFinishInterface
を登録できます。JcaAdapterWizard
拡張クラスのgetAdapterWizardFinish
メソッドをオーバーライドすることによって、このインタフェースを登録します。
デフォルトのデータ・モデルを使用するのではなく、独自のデータ・モデルにアクセスする場合は、readJCADataModel
をオーバーライドします。ただし、これは推奨されていません。
パブリック・メソッドのオーバーライドの例は、<JDEV_HOME>\jdeveloper\integration\adapters\samples\custom
のoracle.tip.tools.ide.pm.wizard.adapter.custom.CustomAdapterWizard.java
を参照してください。
アダプタ・ウィザードのページすべてで、techAdapterWizardPage
(Jpanel
から継承)を拡張する必要があります。
ページ・コンストラクタでは、ウィザードにページを追加して、必要なその他のコンテキスト情報を設定するsetContextAndPage()
を呼び出す必要があります。oracle.tip.tools.ide.pm.wizard.adapter.custom.CustomConnectionPage.java
の例を参照してください。
ユーザーが「終了」ボタンを選択すると、アダプタ・フレームワークによって各ウィザード・ページで、ページが表示されていた順序でbuildDataModel()
メソッドが呼び出されます。buildDataModel()
メソッドは、ページの画面データをデータ・モデルにコピーする処理を担当します。これは、単に、次のようなコードを使用して実行できます。
JcaDataInterface jdata = (JcaDataInterface)getDataModel();
jdata.setProperty(propname,screenField.getText().trim());
JcaAdapterContext
は、すべてのページで使用できます。このとき、有用な情報を取得するための多くのアクセッサ・メソッドが使用されます。ウィザード・ページで一般的に使用されるアクセッサのリストの一部を次に示します。
表2 JcaAdapterContextアクセッサ・メソッド
アクセッサ・メソッド | 注意 |
---|---|
|
Adapterコンテキスト・オブジェクト。 |
|
データ・モデルを取得します。 |
|
ほとんどのJDev相互作用に必要なJDeveloperのProjectオブジェクトを取得します。これには、プロジェクト名も含まれます。 |
|
これは、新規ダイアログまたはポップアップ・エラー・メッセージの呼出し時に必要なFrameオブジェクトを返します。 |
|
これは、新規ダイアログまたはポップアップ・エラー・メッセージの呼出し時に必要なFrameオブジェクトを返します。 |
|
既存のアダプタが更新されていることを示します。 |
|
サービス名を取得します。 |
|
サービス・タイプを取得します。 |
|
既存のWSDLが選択されなかった場合はNULLです。これは、WsdlSelectionPageでユーザーが選択したWsdl/porttypeのWsdlInfoになります。 |
|
操作名を取得します。 |
|
アダプタがインバウンド(Read、Get)の場合、Trueです。 |
|
データベース・アダプタなど、接続オブジェクトを使用するアダプタの接続を取得します。 |
最初から開発したウィザード・ページの例は、oracle.tip.tools.ide.pm.wizard.adapter.custom.CustomPropertiesPage.java
を参照してください。
JcaDataInterface
のほとんどのメソッドに、次の2つのバージョンがあります。
1つ目が、仕様を認識するバージョンで、プロパティまたは属性の所属先のアクティブ化または相互作用の仕様を示す(activationまたはinteraction) spec引数を取ります。
もう1つが、仕様を認識しないバージョンで、spec引数は取りません。このドキュメントの例ではすべて仕様非認識APIが使用されています。
これらのメソッドの仕様非認識バージョンは、一度に1つの仕様のみをサポートするアダプタ・ウィザード向けです。たとえば、FileAdapterインスタンスでは、ファイルの読取りかファイルへの書込みのいずれかを実行できます。単一インスタンスで両方を実行することはできません。
仕様認識メソッドは、複数の仕様をサポートするアダプタ・ウィザードで使用する必要があります。たとえば、MQアダプタでは、非同期コールバックも使用する読取り操作がサポートされています。
この場合、MQアダプタ・ウィザードでは、アクティブ化の仕様と相互作用の仕様が生成されます。このため、MQアダプタ・ウィザードでは、プロパティまたは属性の所属先がどちらの仕様であるかを明確にするために、仕様認識メソッドを使用する必要があります。
spec引数には、spec文字列のみが含まれます。
仕様非認識APIでは、アクティブ化または相互作用の仕様を追加する前にプロパティを設定できる古いアダプタもサポートされます。
「ようこそ」ページ、「サービス名」ページおよび「終了」ページはすべてのアダプタ・ウィザードに共通です。これらのページは、アダプタ・フレームワークによって制御されるため、ウィザードに追加する必要はありませんが、「ようこそ」ページ(JcaAdapterWizard
内)および「終了」ページのコンテンツをオーバーライドするためのアクセッサ・メソッドがあります。
フレームワーク・ページを使用する際は、アダプタによってこれらのページを拡張する必要があります。次に、各タイプの拡張について説明します。
すべてではありませんが、ほとんどのアダプタ・ウィザードに接続ページが必要です。たとえば、AQアダプタには、ユーザーが使用可能なキューのリストを問い合せて、表示できるようにするデータベース接続ページが必要です。
アダプタ・ウィザードにデータベース接続が必要な場合、addInitialWizardPages
にJcaDBConnectionPage
を追加して、このメソッドをそのまま使用します。AdapterWizardContext
で次のアクセッサを使用することによって、後続のページでJDeveloperの接続オブジェクトを使用できるようになります。
Connection getConnection();
DatabaseConnectionInfo getDBConnectionInfo();
このガイドで示しているカスタム・アダプタは、独自の接続タイプを持ち、JcaDBConnectionPage
は使用しないアダプタの一例です。
この場合、CustomConnectionPage
によって、コネクション・ファクトリの場所を求めるプロンプトが出され、この情報が次のようなコードとともにデータ・モデルに配置されます。
JcaDataInterface jdata = (JcaDataInterface)getDataModel();
jdata.setConnectionFactoryAtrribute(JcaDataInterface.
CONNECTION_FACTORY
_LOCATION_ATTRIBUTE,connectionTextField.getText().trim());
多くのアダプタ・ウィザード(ファイル、FTP、AQ、MQおよびJMSアダプタのウィザードなど)では、デフォルトのWSDLを生成するのではなく、ユーザーに対して、既存のWSDL、ポートタイプおよび操作を選択するオプションが用意されています。基本的に、操作の選択によって、アダプタで使用することになるスキーマが定義されます。
ただし、既存のWSDLの選択は、独自のスキーマを提供または生成するアダプタではサポートされません(たとえば、DB、B2B、BAMおよびOracle Applicationアダプタでは、独自のスキーマが生成されます)。
一部のアダプタ・ウィザードではこれら2つが複合されており、既存のWSDLが選択されると、必須スキーマを有する特定の操作が無効になります。
アダプタで既存のWSDLをサポートする必要がある場合は、WsdlSelectionPage
を拡張するクラスを作成する必要があります。
この例は、CustomWsdlSelectionPage
を参照してください。このクラスを拡張するために実装する必要のある抽象メソッドが3つあります。
boolean adapterSupportsSynchRead()
: アダプタに同期読取りオプションがある場合はtrueが返されます。これによって、output要素が含まれるWSDL操作をWsdlSelectionページで選択できるようになります。
boolean adapterSupportsCallback()
: アダプタでコールバック(インバウンドまたはアウトバウンド)を使用できる場合はtrueが返されます。trueの場合、WsdlSelection
ページでユーザーは2つのポート・タイプを選択できます。
createPagesForOperation()
: ユーザーがWSDL操作を選択した後に、開発者は新規ウィザード・ページを追加できます。
注意: 後続のウィザード・ページでは、選択した操作でサポートされない操作および機能を無効にする必要があります。たとえば、ファイル・アダプタおよびFTPアダプタの場合、選択された操作にoutput要素が含まれるときは、「操作」ページ上の、同期読取り操作以外のすべての操作を無効にする必要があります。詳細は、 |
既存のWSDLを選択した場合でも、アダプタ・フレームワークではWSDLが生成されますが、ポート・タイプ、操作、メッセージおよびスキーマはそのWSDLでは生成されず、ユーザーが選択したWSDLがインポートされます。ラッパーWSDLで、選択されたWSDLがインポートされます。これには、importおよびpartnerlinkTypesのみが含まれます。
partnerLinkType
を使用しないWSDLをユーザーが選択したときは、ラッパーWSDLの生成はその方法において、BPELの場合と同様です。
また、アダプタ・ラッパーWSDLでは、partnerLinkTypes
が定義される上、ユーザー選択のWSDLでは使用できないヘッダー・メッセージを定義できます。
すべてのウィザード操作ページ(Read/WriteやGet/Putなどの操作を選択するページ)では、JcaOperationPage
をオーバーライドする必要があります。これは、JcaOperationPage
では、操作名に基づいてWSDLオブジェクト作成が扱われるためです。
操作名は、抽象メソッドgetOperationName()
を実装することによって指定されます。
ほとんどの操作ページで、選択された操作に基づいてウィザードのページが追加および削除されます。アクセッサ・メソッドremovePages()
では、現在のページのみでなくすべてのウィザード・ページが削除されます。
「操作」ページのbuildDataModel()
メソッドは、次のようなコードを使用して、データ・モデル内のアクティブ化または相互作用の仕様を設定する処理を担当します。
JcaDataInterface jdata = (JcaDataInterface)getDataModel();
if (readRB.isSelected()){ jdata.setActivationSpec
(THIS_ADAPTERS_ACTIVATION_SPEC); ) else{ jdata.setInteractionSpec(THIS_ADAPTERS_INTERACTION_SPEC); }
注意: 更新モードの場合、 |
この例は、oracle.tip.tools.ide.pm.wizard.adapter.custom.CustomOperationPage.java
を参照してください。
アダプタによっては、CustomPropertyPage
を使用または拡張して、ユーザーがアクティブ化および相互作用の仕様プロパティを設定できるようにすることが可能です。
ただし、ほとんどの新しいアダプタには、独自のプロパティ・ページがあります。このことによって、プロパティの表示方法(たとえば、値のリスト、UIコントロールまたは検証)をアダプタでより高度に制御できるようになるためです。
カスタム・アダプタで構成ファイルの読取りに使用されるクラスCustomAdapterConfig
はpublicなので、他のアダプタで使用したり拡張したりできます。
CustomAdapterConfig
クラスでは、使用可能な仕様のリストおよびコネクション・ファクトリが、構成ファイルcustomAdapter-config.xml
(デフォルトのカスタム・アダプタ構成ファイル)から取得されます。このクラスを拡張し、getConfigFilePath()
メソッドをオーバーライドすることによって、別の構成ファイルを使用できます。
属性displayResourceKey
およびresourceBundle
はオプションです。activation-spec、interaction-spec、またはproperty要素にdisplayResourceKey
が含まれている場合、フレームワークでは、getDisplayString()
またはtoString()
メソッドで使用可能なリソース・バンドルから表示可能なテキストを取得するキーとして、属性値が使用されます。リソース・バンドルが使用できない場合やバンドルにキーがない場合は、キー自体が表示可能なテキストとして使用されます(このため、リソース・バンドルをクラスに含める必要はありません)。
リソース・バンドルをこのクラスのコンストラクタに渡すことができますが、構成ファイル内の<connection-factory>要素のresourceBundle
属性によってリソース・バンドルをオーバーライドすることもできます。
多くのアダプタ・ウィザードで、ユーザーは、単一スキーマまたはリクエスト/リプライ・スキーマを選択して、アダプタで使用するメッセージを定義できます。
このようなウィザードでは、CommonAdapterSchemaPage
(一方向操作を使用するアダプタ向け)またはCommonAdapterInOutSchemaPage
(一方向操作とリクエスト/リプライ操作を両方とも使用するアダプタ向け)が、スキーマに関連したオプション(typeChooser、NXSDウィザード、不透明なスキーマおよびWSDL生成)で拡張されます。
CommonAdapterSchemaPage
クラス拡張では、getIntroPrompt()
を実装して、ページ上部の導入テキストを変更することのみが必要です。
この例は、oracle.tip.tools.ide.pm.wizard.adapter.custom.CustomSchemaPage
を参照してください。
CommonAdapterInOutSchemaPage
には、オーバーライド可能なパブリック・メソッドがいくつか含まれています。次の表を参照してください。
表3 CommonAdapterInOutSchemaPageのパブリック・メソッド
メソッド | 説明 |
---|---|
|
ページ上部の導入テキストを変更します。 |
|
インバウンド・スキーマ・パネルのラベルを設定します。 |
|
アウトバウンド・スキーマ・パネルのラベルを設定します。 |
|
インバウンド・パネルおよびアウトバウンド・パネルの表示順を変更します。デフォルトの表示では、インバウンド・スキーマ・パネルが先です。 |
|
スキーマ・パネルの表示を設定または設定解除します。 |
この例は、oracle.tip.tools.ide.pm.wizard.adapter.mq.MQAdapterInOutSchemaPage
を参照してください。
ウィザードで「終了」ページが表示されるときに「終了」ボタンが表示されるようにするのではなく、ウィザード・フローの早い段階でウィザードに「終了」ページを追加する必要があります。「終了」ページには、まだ表示されていない他のページで必要なサマリー情報が表示されます。
このようなページの優先順位を指定できるように、techAdapterWizardPage
に2つのヘルパー・メソッドaddFinishPage()
およびsetFinishPageContents()
が用意されています。
addFinishPage()
では、コンテンツのない終了ページがウィザードに追加されます。ほとんどのウィザードでは、ページの削除または追加の際に「終了」ページが追加されます。
setFinishPageContents(String title, Object contents)
では、ユーザーがウィザードの最後のページで「次へ」ボタンを選択したときに、setFinishPageContents
が(wizardValidatePage()
から)呼び出されます。
「終了」ページのコンテンツとして、コンポーネントまたは文字列を指定できます。「終了」ページのコンテンツを文字列に設定すると、MultiLineLabelが自動的に作成されます。
各アダプタでは、JcaAdapterWizard
拡張クラスのgetAdapterWizardFinish()
メソッドをオーバーライドすることによって、AdapterWizardFinishInterface
の実装を登録できます。これによって、アダプタで、終了時に追加のアクティビティを実行できるようになります。
たとえば、ファイル・アダプタでは、この終了処理のオーバーライドを使用して、FileAdapterHeader
スキーマが現行プロジェクトであるかどうかを確認し、このスキーマが現行プロジェクトでない場合は、ファイル・アダプタでヘッダー・ファイルがプロジェクト・ディレクトリにコピーされるように設定できます。
AdapterWizardFinishInterface
には、アダプタのアーティファクト(WSDLファイルおよび.jca
ファイル)の作成前と作成後のいずれかに制御を得る次の2つのメソッドが含まれます。
beforeWSDL()
メソッドは、falseを返し、アダプタのアーティファクトを作成してはいけないことを示します。
afterWSDL()
メソッドは、WSDLファイルの作成後に呼び出されます。
これらのメソッドはどちらも、実装で必要に応じて使用できます。
次の要素は、sca-config.xml
に追加され、カスタム・アダプタで使用するアイコンとSCAEndpoint実装クラスについてSOAダイアグラムに通知して、追加情報を提供します。サブ要素の定義として、次のものがあります。
name: リソース・バンドルから取得されます。
description: リソース・バンドルから取得されます。
tooltip: リソース・バンドルから取得されます(グラフィックでマウス・カーソルの下に表示されます)。
icon16x16: パレットで使用されるアイコン。
icon20x20: グラフィックで使用されるアイコン。
他の4つのアイコンは使用されません。
<adapterType resourceBundle="oracle.tip.tools.ide.pm.modules.biz integration.adapter.custom.resource.CustomStringResourceBundle"> <name>${CUSTOM_ADAPTER_COMPONENT_NAME_L}</name> <bindingType>jca</bindingType> <bindingSubType>custom</bindingSubType <implementationClass>oracle.tip.tools.ide.pm.modules.bizintegration.adapter.custom.CustomScaEndpointImpl</implementationClass> <description>${CUSTOM_ADAPTER_COMPONENT_DESC}</description> <tooltip>${CUSTOM_ADAPTER_COMPONENT_DESC}</tooltip> <icon16x16>/oracle/tip/tools/ide/pm/modules/bizintegration/adapter/custom/resource/custom_adapter_16x16.png</icon16x16> <icon20x20>/oracle/tip/tools/ide/pm/modules/bizintegration/adapter/custom/resource/custom_adapter_20x20.png</icon20x20> <topSectionIcon>oracle/tip/tools/ide/fabric/resource/image/visuals_rd1/whiteServiceTop.png</topSectionIcon> <middleSectionIcon>oracle/tip/tools/ide/fabric/resource/image/visuals_rd1/whiteServiceMiddle.png</middleSectionIcon> <bottomSectionIcon>oracle/tip/tools/ide/fabric/resource/image/visuals_rd1/whiteServiceBottom.png</bottomSectionIcon> <collapsedSectionIcon>oracle/tip/tools/ide/fabric/ resource/image/visuals_rd1/whiteServiceCollapsed.png</collapsedSectionIcon> </adapterType> <collapsedSectionIcon>oracle/tip/tools/ide/fabric/resource/image/
visuals_rd1/whiteServiceCollapsed.png</collapsedSectionIcon> </adapterType>
sca-config.xml
の<adapterType>には、リソース・バンドルのクラス名を格納する必要のあるリソース・バンドル属性が含まれます。このリソース・バンドルは、SOAダイアグラマで、ダイアグラムのエンドポイントのラベル付けに使用する変換済テキストの取得に使用されます。
たとえば、カスタム・アダプタのエントリを参照する場合、ダイアグラムにカスタム・アダプタを表示する際に、ダイアグラムではCustomStringResourceBundle
でCUSTOM_ADAPTER_COMPONENT_NAME_L
が検索されます。
アダプタ・ウィザードの内部で、ダイアグラムではリソース・バンドルを使用して、ウィザード内のすべてのラベルのテキストが取得されます。カスタム・アダプタの場合、同じバンドルが使用されます。
このSDKのクラスには、アダプタ・ウィザード全体を通して使用されているユーティリティ・メソッドが含まれています。次の表は、これらのメソッドを示しています。
メソッド | 注意 |
---|---|
|
|
|
複数のフレーバを使用できます。 |
|
|
|
|
|
|
|
一方向操作の定義オブジェクトからスキーマを削除します。 |
|
リクエスト/リプライ操作の定義オブジェクトから入力/出力スキーマを削除します。 |
アダプタ・ランタイム・コンポーネントの開発には、複数の設計および接続構成手順が関係しています。
これらには、次のものが含まれます。
Oracle JCA Frameworkは、J2EE Java Connector Architectureバージョン1.5に準拠したアダプタにプラガビリティをもたらします。つまり、Oracle JCA Frameworkで使用するアダプタではすべて、JCA 1.5の仕様に記載された要件を満たす必要があります(『JSR-112, J2EE Connector Architecture 1.5 - Final Release』も参照してください)。
注意: Oracle JCA Frameworkでは、軽量JCA 1.5コンテナが実装されます。このコンテナでは、インバウンド・エンドポイント(アクティブ化)の動的(コード駆動)デプロイメントが可能になります。これは、JCA 1.5トランザクション・インフローのサポート(つまり、XATerminatorのサポート)を除外することにおいて、小さな短所となっています。 |
Oracle JCA Frameworkには、J2EE 1.4またはこれ以降に準拠したアプリケーション・サーバー(Oracle WebLogic Serverなど)でデプロイ可能なJCAアダプタが必要です。このため、Oracle JCA Frameworkで使用するすべてのJCAアダプタで、すべての関連JCA SPI(サービス・プロバイダ)およびCCI(共通クライアント)インタフェースをJCA 1.5の仕様で必須とされているとおりに実装する必要があります。主なインタフェースは次のとおりです。
javax.resource.spi.ManagedConnectionFactory
javax.resource.cci.ConnectionFactory
javax.resource.spi.ManagedConnection
javax.resource.cci.Connection
JCAアダプタでは、必要な接続プロパティをManagedConnectionFactory
で定義して、EIS(企業情報システム、つまりバックエンド)への機能接続を確立する必要があります。
Oracle JCA FrameworkでManagedConnectionFactory
を使用すると、デプロイ済JCAアダプタ経由で接続を取得できるようになります。次に、コード例を示します。
ConnectionFactory cf = initialContext.lookup("eis/Siebel/SiebelApp1-Connection");
Connection c = cf.getConnection();
すべての接続プロパティは、ConnectionFactory
インスタンスに含まれるJNDIルックアップを使用して取得されます。
アダプタは、Oracle JCA Frameworkと正常に相互に作用するように、特定のインタフェースおよび規定に準拠する必要があります。主として、JCAアダプタでは少なくとも、次のインタフェースを実装する必要があります。
javax.resource.spi.ResourceAdapter
javax.resource.spi.ActivationSpec
javax.resource.spi.work.Work
javax.resource.cci.Interaction
javax.resource.cci.InteractionSpec
これらのSPIインタフェースは、インバウンド・メッセージ・フローを有効にするために実装する必要があり、CCIインタフェースは、アウトバウンド相互作用を有効にするために実装する必要があります。インバウンド・インタフェースは、次の第4.3.1項「インバウンド」を参照してください。
J2EE Java Connector Architectureバージョン1.5は、トランザクションの観点から(つまり、アダプタでトランザクション・セマンティクスがサポートされる場合に)明確に定義された方法で、J2EEアプリケーション・サーバーで管理されているエンドポイントに、アダプタからメッセージを非同期にプッシュできるようするインタフェースを提供します。
Oracle JCA Frameworkでは、これらのエンドポイントは、アダプタ・フレームワークで管理されます。
次の各項で、Oracle Fusion Middlewareへのデプロイを可能にするためにJCA 1.5準拠のリソース・アダプタで実装する必要がある各サービス・プロバイダ・インタフェース(SPI)について説明します。
各JCAアダプタにこのインタフェースを実装する必要があります。アダプタ・フレームワークでは、このインタフェースのアダプタでの実装がシングルトンとして扱われます。つまり、Java仮想マシンごとにこのインタフェースの実装のインスタンスは多くても1つだけ存在することになります。
アダプタが(特定のJVMの)いずれのビジネス・プロセスでも使用されない場合は、そのアダプタでのResourceAdapterの実装はインスタンス化されません。
ResourceAdapterの実装は、対象のアダプタを使用する最初のコンポジット・アプリケーションの開始時にインスタンス化されます。
その後、同じアダプタを使用する他のコンポジットを開始した場合、追加のResourceAdapter
インスタンスが作成されることはありませんが、最初の(シングルトン)インスタンスへのハンドルが取得されます。
ResourceAdapter
インスタンスの作成直後に、次のメソッドが呼び出されます。
public void start(BootstrapContext ctx) throws ResourceAdapterInternalException
アダプタでは、BootstrapContext
をキャッシュする必要があります。これには、インバウンド・エンドポイント相互作用の作成およびスケジューリングに必要なファシリティが含まれるためです。
BootstrapContext
にも、ロギング・サービス・ハンドルが含まれます。リソース・アダプタでこのハンドルをキャッシュして、インバウンド・メッセージ・フローをサポートするすべてのクラス(つまりjavax.resource.spi.*
の下に提供されるクラス)で使用する必要があります。
アウトバウンドでは、ロギング・サービス・ハンドルは、ConnectionFactoryを通して使用できます。
stop
メソッドは、アプリケーション・サーバーの停止時、またはアダプタを参照する最後のコンポジットの終了時に、リソース・インスタンスがアンデプロイされたときに呼び出されます。
public void stop()
アクティブなエンドポイントが存在する場合、サーバーまたはコンポジットの停止時にアダプタ・フレームワークによって呼び出されたstop()
メソッドから値が返される前に、これらのエンドポイントを非アクティブ化する必要があります。
その他の割当て済リソースも同様にすぐにリリースする必要があります。
public void endpointActivation(MessageEndpointFactory endpointFactory,
ActivationSpec spec)
メッセージ・エンドポイントのアクティブ化の際に、エンドポイント・アクティブ化が呼び出されます。
JCAベースの開始または非開始サービス・エントリ・ポイント(つまり、<service>
でbinding.jca
を使用するエントリ・ポイント)が含まれる各コンポジットでは、.jca
プロパティ・ファイルのコネクション・ファクトリJNDIによって参照されるResourceAdapterの関連(インバウンド)操作ごとに、endpointActivation()
の呼出しが発生します。
アダプタ・フレームワークでは、.jca
プロパティ・ファイルの<connection-factory>
要素に定義されているとおりに、MessageEndpointFactory
を使用して、ConnectionFactory
のインスタンスが指定されます。このインスタンスをリソース・アダプタで使用して接続を作成できます。
javax.resource.cci.ConnectionFactory connectionFactory = ((ConnectionFactoryAssociation)activationSpec).getConnectionFactory(); javax.resource.cci.Connection connection = connectionFactory.getConnection();
この呼出し時に、リソース・アダプタでは、MessageEndpointFactory
を使用して、インバウンド・エンドポイントを作成し、インバウンドEISエンドポイントを監視するインバウンド・スレッドを構成する作業リクエストを発行する必要があります。
ResourceAdapterInboundWorkerThread workRequest = new ResourceAdapterInboundWorkerThread(endpoint, activationSpec, connection); workManager.startWork(workRequest);
ここで、ResourceAdapterInboundWorkerThread
は、リソース・アダプタでのjavax.resource.spi.work
.Work
の実装です。
startWork()
から値が返されたらすぐに、アダプタ・フレームワークは、run()
メソッドを呼び出すことによって、発行したworkRequest
にスレッドを割り当てます。
次のメソッドendpointDeactivationは、メッセージ・エンドポイントが非アクティブ化された際、つまり、そのエンドポイントをアクティブ化したコンポジットの停止時またはアプリケーション・サーバーの停止時に、アダプタ・フレームワークによって呼び出されます。
public void endpointDeactivation(MessageEndpointFactory
endpointFactory, ActivationSpec spec)
Workインタフェースは、次のとおりです。
public interface Work extends Runnable
Oracle SOAを使用してデプロイしたJCA 1.5準拠のリソース・アダプタは、管理対象モード(つまり、 J2EEコンテナ内)で実行されるため、独自にスレッドを作成することはできません。このため、アダプタは、かわりにWebLogicアプリケーション・サーバーに依存して、スレッドの作成と開始を行う必要があります。
スレッド(たとえば、インバウンド・エンドポイントのポーリングに使用するスレッド)を取得するには、アダプタは、Workインタフェースを実装するクラスのインスタンスをWorkManager(これを受けてBootstrapContext
を使用して取得される)に発行する必要があります。
アダプタでは、これはrun
メソッドを使用して実行されます。
public void run()
このメソッドは、新規に割り当てられたJ2EE準拠のスレッドを使用して、WorkManagerによって呼び出されます。リソース・アダプタでは、停止を選択するまで(たとえば、リカバリ不能なエラー状態など。ただし、この規則はお薦めしません)、またはより適切な、アダプタが停止のシグナルを受けるまで(release()
メソッドによって)、このスレッドを使用できます。
public void release()
アダプタ自体は、アダプタ・フレームワークによって実行されたendpointDeactivation
の呼出しを処理する際に、release()
を呼び出します。
このアクティビティは、現在Workインスタンスを実行しているスレッド、つまりendpointActivation
を呼び出しているシステム・スレッドとは別のスレッドで呼び出されます。
リソース・アダプタで、release()
の呼出し後に事前設定されている時間が経過した後に、run()
メソッドが終了されない場合、アダプタ・フレームワークでは、スレッドの強制的な停止が試行されます。
Oracle SOAでは、WorkManager
インタフェースの実装は、アダプタ・フレームワークによって行われます。実装は最小限です。これは、アダプタ・フレームワークでは、拡張スレッド・プーリングや高度なスケジューリングがサポートされないためです。
かわりに、アダプタ・フレームワークでは、6つのパブリック・メソッドのうち1つのメソッドscheduleWork(Work work)
のみが実装されます。その他のパブリック・メソッドは、このメソッドにリダイレクトされます。つまり、呼出しのブロッキングはサポートされていません(この例として、呼出しのブロッキングはdoWork()
に必要です)。
アダプタ・フレームワークでは、SOAのデフォルトのワーク・マネージャを使用して、完了したWork
インスタンスから解放されたスレッドをWorkの新規発行で再使用できるようにします。
次のメソッドでは、Workインスタンスが処理に向けて受け入れられます。
public void scheduleWork(Work work)
throws WorkException
この呼出しはブロックされず、Workインスタンスが処理に向けて受け入れられるとすぐに値が返されます。発行されたWorkインスタンスでいつ実行が開始されるかの保証はありません。つまり、実行の開始に時間の制約はありません。
アウトバウンドおよびインバウンドのシナリオでは、リソース・マネージャはJCA 1.0の仕様に定義されている標準の規定に準拠する必要があります。
アウトバウンドのシナリオでは、アダプタの実行時定義を指定する際に、次の要件を満たす必要があります。
リソース・アダプタのManagedConnectionFactory
で、接続関連のパラメータをすべて定義する必要があります。これによって単にOracle SOAランタイムが実行可能になります。次に例を示します。
ConnectionFactory cciConnectionFactory =
initialContext.lookup("eis/sample/..."); Connection cciConnection = cciConnectionFactory.getConnection();
InteractionSpec
実装の標準のInteractionSpec
パラメータはすべて、String、int、boolean、short、long、floatおよびdoubleのうちのいずれかの引数タイプを使用して、1つの引数ミューテータ・メソッドによって構成する必要があります。
リソース・アダプタは、管理対象環境で機能できることが必要です。このため、リソース・アダプタは、J2EEアプリケーション・サーバーにデプロイ可能である必要があります。
変換サービス・インタフェースでは、メッセージとネイティブ・フォーマットとの間の変換が処理されます。アダプタ・フレームワークでは、指定のWSDLバインディング操作のInteractionSpec
またはActivationSpec
をインスペクトすることによって、操作関連メッセージのネイティブ・フォーマットへの、またはネイティブ・フォーマットからの変換における要件が判別されます。
示された仕様のいずれかで、変換マーカー・インタフェースTranslationAware
が実装されると、アダプタ・フレームワークでは、WSDLのtypesセクションから対応するXSDElementが指定され、これによって入力メッセージ・タイプが定義されます。
具体的には、アダプタ・フレームワークでは、次のステップが実行されます。
jcaInteractionSpec=(InteractionSpec) Class.forName(_interactionSpecName).newInstance(); if (jcaInteractionSpec instanceof TranslationAware) {
oracle.xml.parser.schema.XMLSchema nXsdSchemaRoot =
getInputMessageSchemaElement();
((TranslationAware)jcaInteractionSpec).
setNXSDSchemaRoot(nXsdSchemaRoot); } jcaInteraction.execute(jcaInteractionSpec, ...
WebLogicアプリケーション・サーバーにJCAアダプタをデプロイするには、ユーザーは次のプロパティを定義するデプロイメント・ディスクリプタ・ファイルを作成する必要があります。
表示名
アダプタ・ベンダー
EIS/バックエンド・タイプ
バージョン番号
j
avax.resource.spi.ManagedConnectionFactory
のアダプタ実装のクラス名
javax.resource.cci.ConnectionFactory
のアダプタ実装のクラス名
javax.resource.cci.Connection
のアダプタ実装のクラス名
ManagedConnectionFactory
実装で公開されるすべてのBeanプロパティの名前
デプロイメント・ディスクリプタでは、<outbound-resourceadapter>
のインスタンスが定義されるのみです。これは、インバウンドJCAラインタイム・コンテナはOracle WebLogic Serverではなく、Oracle JCA Frameworkによって直接管理されるためです。
デプロイメント・ディスクリプタ・ファイル(ra.xml
)をRARファイル(リソース・アーカイブ)にアーカイブする必要があります。RARファイルは、WebLogic Serverコンソールまたはスクリプトを使用してデプロイできます。
ユーザーがデプロイするRARファイルには、次の構造が必要です。
/META-INF/ra.xml /adapter.jar /dependencies.jar
adapter.jar
ファイルには、JCAアダプタの実装が含まれ、dependencies.jar
には、WebLogicアプリケーション・サーバーによって暗黙的には提供されないすべての依存Javaライブラリが含まれます。
これらの構成ファイルが前述のディレクトリ構造に配置されると、次のコマンドを使用してRARファイルを作成できます。
$ jar cf myAdapter.rar META-INF/ra.xml adapter.jar dependencies.jar
プロジェクトのコンパイルに必要なjarファイルのリストは、付録を参照してください。
アダプタのリソース・アーカイブを作成したら、ユーザーは、WLS管理コンソールの「デプロイメント」セクションまたはWLSTツール(http://docs.oracle.com/cd/E13222_01/wls/docs90/config_scripting/reference.html#1024285を参照)を使用して、WebLogicアプリケーション・サーバーにアダプタをデプロイする必要があります。
RARファイルをWebLogic Serverドメイン・ディレクトリの下のautodeploy
ディレクトリに直接コピーすることもできます。ここでは、RARファイルは自動的にデプロイされます。
RARをデプロイすると、ユーザーは、WebLogic Server管理コンソールの「デプロイメント」セクションの下に接続ファクトリを作成できます。例として、アウトバウンド接続プール構成表を使用している、次のスクリーンショットを参照してください。
カスタム・アダプタのテストに関する情報は、このドキュメントで後述のサンプルの項を参照してください。
Oracle SOA Suiteのインストール時に、現在のリリースでは、カスタム・アダプタは、デフォルトで使用可能にはなっていません。カスタム・アダプタをJDeveloperで使用可能にする手順は次のとおりです。
次のファイルを編集します。
ファイル
JDEV_HOME\jdeveloper\integration\seed\soa\configuration\soa-config.xml
このファイルで、customという単語を検索します。
ファイルで単語customに関連付けられているadapterType
要素を非コメント化します。そうすると、次のスクリーンショットのように、JDeveloperのSOAダイアグラムの「コンポーネント・パレット」にカスタム・アダプタが表示されます。
<JDEV_HOME>\jdeveloper\integration\seed\
ファイルには、詳細なオプション(connection-factory location、interaction-spec className、activation-spec className、プロパティなど)が含まれています。
soa\configuration\customAdapter-config.xml
ファイルのactivation-specの下に指定されるプロパティは、インバウンド・アダプタ用のプロパティです。
同様に、ファイルのinteraction-specの下に指定されるプロパティは、アウトバウンド・アダプタ用のプロパティです。
プロパティの値はカスタム・アダプタによって表示されたデフォルト値です。
ユーザーは、カスタム・アダプタで必要なオプションに適合するように、customAdapter-config.xml
のコンテンツを変更する必要があります。たとえば、ユーザーは、すべてのプロパティ名やデフォルト値の変更、新しいプロパティの追加、複数のアクティブ化仕様と相互作用仕様の追加などを行うことができます。
displayResourceKey
およびresourceBundle
属性はオプションです。activation-spec、interaction-spec、またはproperty要素にdisplayResourceKey
が含まれている場合、属性値はリソース・バンドルから表示可能なテキストを取得するキーとして使用されます。
リソース・バンドルが使用できない場合やバンドルにキーがない場合は、キー自体が表示可能なテキストとして使用されます(キーにリソース・バンドルを含める必要がないため)。
ただし、resourceBundle
属性をconnection-factory要素に配置することによって、リソース・バンドルを使用できます。
スクリーンショットで使用されているサンプルのcustomAdapter-config.xml
ファイルのコンテンツは、次のとおりです。
<adapter-config
xmlns="http://platform.integration.oracle/blocks/adapter/fw/metadata">
<connection-factory location="eis/Custom/CustomAdapter"
resourceBundle="oracle.tip.tools.ide.pm.modules.bizintegration.adapter.
custom.resource.CustomStringResourceBundle"/> <endpoint-interaction > <interaction-spec
className="oracle.tip.adapter.custom.outbound.CustomInteractionSpec"
displayResourceKey="CustomInteractionSpec" > <property name="PropX" value="x" displayResourceKey="SAMP_PROP_X" /> <property name="PropY" value="y" displayResourceKey="Sample Property Y"/> <property name="Append" value="false"/> <property name="NumberMessages" value="1"/> </interaction-spec> </endpoint-interaction> <endpoint-interaction > <activation-spec className="oracle.tip.adapter.custom.inbound.CustomActivationSpec"
displayResourceKey="CustomActivationSpec"> <property name="UseHeaders" value="false"/> <property name="PhysicalDirectory" value="x"/> <property name="Recursive" value="true"/> <property name="DeleteFile" value="true"/> <property name="IncludeFiles" value="x"/> <property name="PollingFrequency" value="60"/> <property name="MinimumAge" value="0"/> </activation-spec> </endpoint-activation> </adapter-config>
アダプタのSDK開発の理解に役立つサンプルのソース・コード、ビルド・スクリプトおよびコンポジット・アプリケーションが用意されています。
カスタム・アダプタのコードおよびビルド・スクリプトは、単純だが機能的なアダプタ向けであり、次のURLから取得することも、SOAインストールのJDeveloperディレクトリ
<JAVA_HOME>/developer/integration/adapters/samples/custom
から取得することもできます。
http://java.net/projects/oraclesoasuite11g/downloads/download/Adapters/Custom/runtime-sdk.zip
SCAコンポジット・アプリケーションは、カスタム・アダプタの機能を詳細にテストするテスト・シナリオの設計に役立ちます。
カスタム・アダプタで、インバウンドとアウトバウンドの両方の機能を提供する場合は、テスト・コンポジットでインバウンドおよびアウトバウンド(つまりエンドツーエンド)のシナリオにそのアダプタを採用できます。
カスタム・アダプタが一方向(たとえば、アウトバウンドのみ)の場合は、SOAテスト・コンソールを使用してSOAPエントリ・ポイント経由でテスト・コンポジットをトリガーできます。
http://java.net/projects/oraclesoasuite11g/downloads/download/Adapters/Custom/sca_project.zip
ビルドの実行に必要なjarファイルの包括的なリストを次に示します。
oracle.sca.ui.adapters.jar
xbean.jar
adapter_xbeans.jar/jdeveloper/ide/extensions
にあるoracle.ide.jar
oracle_common\modules\oracle.javatools_11.1.1
にあるjavatools-nodeps.jar
modules
にあるcom.oracle.ws.orawsdl_1.3.0.0.jar
jdeveloper/jlib
にあるjewt4.jar
jdeveloper/jdev/extensions
にあるoracle.sca.modeler.jar
oracle_common/modules/oracle.bali.share_11.1.1
にあるshare.jar
developer/integration/lib
にあるbmp-ide-common.jar
jdeveloper/ide/lib
にあるjavatools.jar
jdeveloper/jdev/extensionsにあるoracle.jdevimpl.wsdl.jar
Oracleのアクセシビリティについての詳細情報は、Oracle Accessibility ProgramのWebサイト(http://www.oracle.com/pls/topic/lookup?ctx=acc&id=docacc
)を参照してください。
Oracle Supportへのアクセス
Oracleサポート・サービスでは、My Oracle Supportを通して電子支援サービスを提供しています。詳細情報は(http://www.oracle.com/pls/topic/lookup?ctx=acc&id=info
)か、聴覚に障害のあるお客様は(http://www.oracle.com/pls/topic/lookup?ctx=acc&id=trs
)を参照してください。
Oracle® SOA Suite 11gリリース1 (11.1.1.7)
B72415-02
Copyright © 2007, 2013 Oracle and/or its affiliates. All rights reserved.
このソフトウェアおよび関連ドキュメントの使用と開示は、ライセンス契約の制約条件に従うものとし、知的財産に関する法律により保護されています。ライセンス契約で明示的に許諾されている場合もしくは法律によって認められている場合を除き、形式、手段に関係なく、いかなる部分も使用、複写、複製、翻訳、放送、修正、ライセンス供与、送信、配布、発表、実行、公開または表示することはできません。このソフトウェアのリバース・エンジニアリング、逆アセンブル、逆コンパイルは互換性のために法律によって規定されている場合を除き、禁止されています。
ここに記載された情報は予告なしに変更される場合があります。また、誤りが無いことの保証はいたしかねます。誤りを見つけた場合は、オラクル社までご連絡ください。
このソフトウェアまたは関連ドキュメントを、米国政府機関もしくは米国政府機関に代わってこのソフトウェアまたは関連ドキュメントをライセンスされた者に提供する場合は、次の通知が適用されます。
U.S. GOVERNMENT END USERS: Oracle programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, delivered to U.S. Government end users are "commercial computer software" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, use, duplication, disclosure, modification, and adaptation of the programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, shall be subject to license terms and license restrictions applicable to the programs. No other rights are granted to the U.S. Government.
このソフトウェアまたはハードウェアは様々な情報管理アプリケーションでの一般的な使用のために開発されたものです。このソフトウェアまたはハードウェアは、危険が伴うアプリケーション(人的傷害を発生させる可能性があるアプリケーションを含む)への用途を目的として開発されていません。このソフトウェアまたはハードウェアを危険が伴うアプリケーションで使用する際、このソフトウェアまたはハードウェアを安全に使用するために、適切な安全装置、バックアップ、冗長性(redundancy)、その他の対策を講じることは使用者の責任となります。このソフトウェアまたはハードウェアを危険が伴うアプリケーションで使用したことに起因して損害が発生しても、オラクル社およびその関連会社は一切の責任を負いかねます。
OracleおよびJavaはOracle Corporationおよびその関連企業の登録商標です。その他の名称は、それぞれの所有者の商標または登録商標です。
Intel、Intel Xeonは、Intel Corporationの商標または登録商標です。すべてのSPARCの商標はライセンスをもとに使用し、SPARC International, Inc.の商標または登録商標です。AMD、Opteron、AMDロゴ、AMD Opteronロゴは、Advanced Micro Devices, Inc.の商標または登録商標です。UNIXは、The Open Groupの登録商標です。
このソフトウェアまたはハードウェア、そしてドキュメントは、第三者のコンテンツ、製品、サービスへのアクセス、あるいはそれらに関する情報を提供することがあります。オラクル社およびその関連会社は、第三者のコンテンツ、製品、サービスに関して一切の責任を負わず、いかなる保証もいたしません。オラクル社およびその関連会社は、第三者のコンテンツ、製品、サービスへのアクセスまたは使用によって損失、費用、あるいは損害が発生しても一切の責任を負いかねます。