Oracle service-bus-weblogic-integration
-
Upload
oracle-fusion-middleware -
Category
Technology
-
view
734 -
download
1
description
Transcript of Oracle service-bus-weblogic-integration
<Insert Picture Here><Insert Picture Here>
OSB 11g からからからからWLI 10.3.1 とネイティブ連携する方法とネイティブ連携する方法とネイティブ連携する方法とネイティブ連携する方法
日本オラクル株式会社日本オラクル株式会社日本オラクル株式会社日本オラクル株式会社Fusion Middleware事業統括本部事業統括本部事業統括本部事業統括本部
以下の事項は、弊社の一般的な製品の方向性に関する概要を説明するものです。また、情報提供を唯一の目的とするものであり、いかなる契約にも組み込むことはできません。以下の事項は、マテリアルやコード、機能を提供することをコミットメント(確約)するものではないため、購買決定を行う際の判断材料になさらないで下さい。オラクル製品に関して記載されている機能の開発、リリースおよび時期については、弊社の裁量により決定されます。
Copyright© 2012, Oracle and/or its affiliates. All rights reserved.
弊社の裁量により決定されます。
OracleとJavaは、Oracle Corporation 及びその子会社、関連会社の米国及びその他の国における登録商標です。
文中の社名、商品名等は各社の商標または登録商標である場合があります。
アジェンダアジェンダアジェンダアジェンダ
• 本資料の概要
• システム構成
• 設定手順
Copyright© 2012, Oracle and/or its affiliates. All rights reserved.
本資料の概要本資料の概要本資料の概要本資料の概要
• OSB 11g よりWLI 10.3.1 とネイティブ接続を用いて連携する機能が提供されなくなったため、本文書では Java コールアウトを用いて OSB 11g からWLI 10.3.1 上のプロセスを呼び出す方法用いて OSB 11g からWLI 10.3.1 上のプロセスを呼び出す方法を説明します。
Copyright© 2012, Oracle and/or its affiliates. All rights reserved.
システム構成システム構成システム構成システム構成
• モジュール構成
No. モジュール 説 明 動作する環境No. モジュール 説 明 動作する環境
1 HelloProcess.java WLI 上で動作する簡単なプロセス実装。 WLI 10.3.1
2 HelloProcessProxy.jarRMIProxy機能を用いて HelloProcess.java から生成した
クライアントライブラリ。OSB 11g
クライアントライブラリを用いたクライアント実装。
Copyright© 2012, Oracle and/or its affiliates. All rights reserved.
3 SampleWLIProxy.java
クライアントライブラリを用いたクライアント実装。
OSB Java コールアウトから呼び出され、RMIProxy 経由
でWLI上のプロセスを呼び出す。
OSB 11g
• OSBから Java コールアウトを用いてプロセス連携を実現します
WLI
システム構成システム構成システム構成システム構成
OSB WLI
HelloProcess.java
OSB
HelloProcessPS
Java コールアウト
SampleWLIProxy.java
HelloProcessProxy.jar
Copyright© 2012, Oracle and/or its affiliates. All rights reserved.
T3 プロトコルを用いたネイティブ連携が可能
設定手順設定手順設定手順設定手順
• WLI 10.3.1 のWorkshop 環境で HelloProcess.java を作成します。
package processes;
import com.bea.jpd.JpdContext;import com.bea.jpd.ProcessDefinition;
@com.bea.wli.jpd.Process(process = "<process name=¥"HelloProcess¥">"
+ + " <clientRequest name=¥"Client Request with Return¥" method=¥"clientRequestwithReturn¥" returnMethod=¥"clientReturn¥">"
+ " <perform name=¥"Perform¥" method=¥"perform¥"/>"
+ " </clientRequest>" + "</process>")
public class HelloProcess implements ProcessDefinition {public java.lang.String userName;public java.lang.String message;
@com.bea.wli.jpd.ContextJpdContext context;
static final long serialVersionUID = 1;
public void clientRequestwithReturn(java.lang.String userName) {// #START: CODE GENERATED - PROTECTED SECTION - you can safely add code above this comment in this method. #//// input transform// parameter assignmentthis.userName = userName;// #END : CODE GENERATED - PROTECTED SECTION - you can safely add code below this comment in this method. #//
}
この例では実⾏時のパラメータへメッセージを追加する Hello World 的な簡単な処理を
実装しています
Copyright© 2012, Oracle and/or its affiliates. All rights reserved.
}
public java.lang.String clientReturn() {// #START: CODE GENERATED - PROTECTED SECTION - you can safely add code above this comment in this method. #//// returnreturn message;// #END : CODE GENERATED - PROTECTED SECTION - you can safely add code below this comment in this method. #//
}
public void perform() throws Exception {this.message = "こんにちは、" + this.userName + "さん!";
}}
• HelloProcess.java をサーバで実行します。
設定手順設定手順設定手順設定手順
• [終了]ボタンをクリックするとテスト画面が起動します。
Copyright© 2012, Oracle and/or its affiliates. All rights reserved.
設定手順設定手順設定手順設定手順
• テスト画面の [RMI プロキシ]ボタンをクリックします。
• RMIProxy機能が生成した HelloProcessProxy.jar をダウンロードします。
Copyright© 2012, Oracle and/or its affiliates. All rights reserved.
設定手順設定手順設定手順設定手順
• <OSBドメインディレクトリ>/lib ディレクトリへ実行に必要な jar ファイルをコピーします。
– ダウンロードした HelloProcessProxy.jar
– <WLI導入ディレクトリ>/wli_10.3/lib/jpdproxy_client.jar
• OSBのインスタンスを起動します。
(補足) <OSBドメインディレクトリ>/lib ディレクトリに存在する jar ファイルはインスタンス起動時に CLASSPATHへ自動的に追加されます。
• OSB 11g の OEPE を起動し、任意の Java プロジェクトを作成します。(ここではWLIProxyProject とします)
<2012/05/18 15時25分35秒 JST> <Notice> <WebLogicServer> <BEA-000395> <次の拡張子ディレクトリの内容がクラスパスの後ろに追加されました:C:¥oracle¥osb¥osb11.1.1.6¥user_projects¥domains¥osb_sample¥lib¥HelloProcessProxy.jar;C:¥oracle¥osb¥osb11.1.1.6¥user_projects¥domains¥osb_sample¥lib¥jpdproxy_client.jar>
Copyright© 2012, Oracle and/or its affiliates. All rights reserved.
(ここではWLIProxyProject とします)
設定手順設定手順設定手順設定手順
• SampleWLIProxy.java ファイルを作成します。package com.oracle.jp.sc.sample;
import javax.naming.Context;import javax.naming.NamingException;import weblogic.wli.jpdproxy.HelloProcess;import weblogic.jndi.Environment;import com.bea.wli.bpm.proxy.JpdProxy;
public class SampleWLIProxy {
public static String hello(String userName) {String message = null;try{HelloProcess p = (HelloProcess)JpdProxy.create(HelloProcess.class,HelloProcess.SERVICE_URI,
new JpdProxy.ContextHandler(){private static final long serialVersionUID = 1L;
public Context getContext() throws NamingException{Environment env = new Environment();env.setProviderUrl("t3://localhost:8001");env.setSecurityPrincipal("weblogic");env.setSecurityCredentials("welcome1");return env.getInitialContext();
}
Copyright© 2012, Oracle and/or its affiliates. All rights reserved.
}});
message = p.clientRequestwithReturn(userName); }catch (Exception e) {
System.out.println(e.getStackTrace());System.out.println(e.getCause());
}return message;
}
public static void main(String[] args) throws Exception {System.out.println("実行結果 : " + hello("WebLogic") );
}}
設定手順設定手順設定手順設定手順
• SampleWLIProxy.java にハードコードされている接続先 URL、ユーザ、パスワードを適宜変更します。
public Context getContext() throws NamingException{Environment env = new Environment();env.setProviderUrl("t3://localhost:8001");env.setSecurityPrincipal("weblogic");env.setSecurityCredentials("welcome1");return env.getInitialContext();
• Java ビルドパスへ <OSBドメインディレクトリ>/lib ディレクトリへコピーした HelloProcessProxy.jar とjpdproxy_client.jar を追加します。
return env.getInitialContext();}
Copyright© 2012, Oracle and/or its affiliates. All rights reserved.
設定手順設定手順設定手順設定手順
• SampleWLIProxy.classを含む jar ファイルをエクスポートします。(ここではWLIProxyProject.jar とします)
• 以下、Java コールアウトを用いて SampleWLIProxy を呼び出す場合の設定例を記載します。
• OSBの管理コンソールへログインします。(例) http://<OSBサーバ名>:7001/sbconsole
Copyright© 2012, Oracle and/or its affiliates. All rights reserved.
設定手順設定手順設定手順設定手順
• プロジェクト・エクスプローラ上で任意のプロジェクトを作成します。(ここでは SampleProject とします)
• SampleProjectへWLIProxyProject.jarを取り込みます。
Copyright© 2012, Oracle and/or its affiliates. All rights reserved.
• URL を指定してWLI上のプロセス( HelloProcess.java)のWSDL を取り込みます。(例) http://<WLIサーバ名>:8001/WLISampleWeb/processes/HelloProcess.jpd?WSDL
設定手順設定手順設定手順設定手順
Copyright© 2012, Oracle and/or its affiliates. All rights reserved.
• 取り込んだWSDL をもとにプロキシサービスを作成します。 (ここでは HelloProcessPS とします)
設定手順設定手順設定手順設定手順
この例では JPD ポートを指定していますが、どのポートを選択しても問題ありません
Copyright© 2012, Oracle and/or its affiliates. All rights reserved.
• HelloProcessPSへパイプライン・ペアとステージを追加します。
設定手順設定手順設定手順設定手順
• ステージ編集画面へ移動します。
Copyright© 2012, Oracle and/or its affiliates. All rights reserved.
• ステージ編集画面へ移動します。
• Java コールアウトを追加します。
• Java コールアウトのメソッドへ SampleWLIProxy#hello() メソッドを指定します。
設定手順設定手順設定手順設定手順
Copyright© 2012, Oracle and/or its affiliates. All rights reserved.
• Java コールアウトのパラメータ式へ以下の XQuery を指定します。
$body/open:clientRequestwithReturn/open:userName/text()
• Java コールアウトの結果を格納する任意の変数を指定します。 (ここでは result とします)
設定手順設定手順設定手順設定手順
• ログアクションへ以下のように設定し、WLIプロセスの実行結果を OSBのサーバログへ出力します。
Copyright© 2012, Oracle and/or its affiliates. All rights reserved.
<式> : $result注釈付き : << OSB-WLI連携サンプル >> 重大度レベル : 情報
• テスト・コンソールを用いて HelloProcessPS を実行します。
設定手順設定手順設定手順設定手順
• テスト・コンソールの結果画面やサーバログを確認します。
この例ではユーザ名にWebLogic を指定しています
サーバログへ出力された内容サーバログへ出力された内容サーバログへ出力された内容サーバログへ出力された内容
Copyright© 2012, Oracle and/or its affiliates. All rights reserved.
<BEA-000000> < [PipelinePairNode1, PipelinePairNode1_request, stage1, REQUEST] << OSB-WLI連携サンプル >>: こんにちは、WebLogicさん!>
サーバログへ出力された内容サーバログへ出力された内容サーバログへ出力された内容サーバログへ出力された内容
Copyright© 2012, Oracle and/or its affiliates. All rights reserved.
Copyright© 2012, Oracle and/or its affiliates. All rights reserved.