Oracle service-bus-weblogic-integration

22
<Insert Picture Here> <Insert Picture Here> OSB 11g WLI 10.3.1 と連携す方法 と連携す方法 と連携す方法 と連携す方法 日本株式会社 日本株式会社 日本株式会社 日本株式会社 Fusion Middleware事業統括本部 事業統括本部 事業統括本部 事業統括本部

description

OSB 11g より WLI 10.3.1 とネイティブ接続を用いて連携する機能が提供されなくなったため、本文書では Java コールアウトを用いて OSB 11g から WLI 10.3.1 上のプロセスを呼び出す方法を説明します。

Transcript of Oracle service-bus-weblogic-integration

Page 1: Oracle service-bus-weblogic-integration

<Insert Picture Here><Insert Picture Here>

OSB 11g からからからからWLI 10.3.1 とネイティブ連携する方法とネイティブ連携する方法とネイティブ連携する方法とネイティブ連携する方法

日本オラクル株式会社日本オラクル株式会社日本オラクル株式会社日本オラクル株式会社Fusion Middleware事業統括本部事業統括本部事業統括本部事業統括本部

Page 2: Oracle service-bus-weblogic-integration

以下の事項は、弊社の一般的な製品の方向性に関する概要を説明するものです。また、情報提供を唯一の目的とするものであり、いかなる契約にも組み込むことはできません。以下の事項は、マテリアルやコード、機能を提供することをコミットメント(確約)するものではないため、購買決定を行う際の判断材料になさらないで下さい。オラクル製品に関して記載されている機能の開発、リリースおよび時期については、弊社の裁量により決定されます。

Copyright© 2012, Oracle and/or its affiliates. All rights reserved.

弊社の裁量により決定されます。

OracleとJavaは、Oracle Corporation 及びその子会社、関連会社の米国及びその他の国における登録商標です。

文中の社名、商品名等は各社の商標または登録商標である場合があります。

Page 3: Oracle service-bus-weblogic-integration

アジェンダアジェンダアジェンダアジェンダ

• 本資料の概要

• システム構成

• 設定手順

Copyright© 2012, Oracle and/or its affiliates. All rights reserved.

Page 4: Oracle service-bus-weblogic-integration

本資料の概要本資料の概要本資料の概要本資料の概要

• 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.

Page 5: Oracle service-bus-weblogic-integration

システム構成システム構成システム構成システム構成

• モジュール構成

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

Page 6: Oracle service-bus-weblogic-integration

• 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 プロトコルを用いたネイティブ連携が可能

Page 7: Oracle service-bus-weblogic-integration

設定手順設定手順設定手順設定手順

• 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 + "さん!";

}}

Page 8: Oracle service-bus-weblogic-integration

• HelloProcess.java をサーバで実行します。

設定手順設定手順設定手順設定手順

• [終了]ボタンをクリックするとテスト画面が起動します。

Copyright© 2012, Oracle and/or its affiliates. All rights reserved.

Page 9: Oracle service-bus-weblogic-integration

設定手順設定手順設定手順設定手順

• テスト画面の [RMI プロキシ]ボタンをクリックします。

• RMIProxy機能が生成した HelloProcessProxy.jar をダウンロードします。

Copyright© 2012, Oracle and/or its affiliates. All rights reserved.

Page 10: Oracle service-bus-weblogic-integration

設定手順設定手順設定手順設定手順

• <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 とします)

Page 11: Oracle service-bus-weblogic-integration

設定手順設定手順設定手順設定手順

• 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") );

}}

Page 12: Oracle service-bus-weblogic-integration

設定手順設定手順設定手順設定手順

• 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.

Page 13: Oracle service-bus-weblogic-integration

設定手順設定手順設定手順設定手順

• SampleWLIProxy.classを含む jar ファイルをエクスポートします。(ここではWLIProxyProject.jar とします)

• 以下、Java コールアウトを用いて SampleWLIProxy を呼び出す場合の設定例を記載します。

• OSBの管理コンソールへログインします。(例) http://<OSBサーバ名>:7001/sbconsole

Copyright© 2012, Oracle and/or its affiliates. All rights reserved.

Page 14: Oracle service-bus-weblogic-integration

設定手順設定手順設定手順設定手順

• プロジェクト・エクスプローラ上で任意のプロジェクトを作成します。(ここでは SampleProject とします)

• SampleProjectへWLIProxyProject.jarを取り込みます。

Copyright© 2012, Oracle and/or its affiliates. All rights reserved.

Page 15: Oracle service-bus-weblogic-integration

• URL を指定してWLI上のプロセス( HelloProcess.java)のWSDL を取り込みます。(例) http://<WLIサーバ名>:8001/WLISampleWeb/processes/HelloProcess.jpd?WSDL

設定手順設定手順設定手順設定手順

Copyright© 2012, Oracle and/or its affiliates. All rights reserved.

Page 16: Oracle service-bus-weblogic-integration

• 取り込んだWSDL をもとにプロキシサービスを作成します。 (ここでは HelloProcessPS とします)

設定手順設定手順設定手順設定手順

この例では JPD ポートを指定していますが、どのポートを選択しても問題ありません

Copyright© 2012, Oracle and/or its affiliates. All rights reserved.

Page 17: Oracle service-bus-weblogic-integration

• HelloProcessPSへパイプライン・ペアとステージを追加します。

設定手順設定手順設定手順設定手順

• ステージ編集画面へ移動します。

Copyright© 2012, Oracle and/or its affiliates. All rights reserved.

• ステージ編集画面へ移動します。

• Java コールアウトを追加します。

Page 18: Oracle service-bus-weblogic-integration

• Java コールアウトのメソッドへ SampleWLIProxy#hello() メソッドを指定します。

設定手順設定手順設定手順設定手順

Copyright© 2012, Oracle and/or its affiliates. All rights reserved.

• Java コールアウトのパラメータ式へ以下の XQuery を指定します。

$body/open:clientRequestwithReturn/open:userName/text()

Page 19: Oracle service-bus-weblogic-integration

• Java コールアウトの結果を格納する任意の変数を指定します。 (ここでは result とします)

設定手順設定手順設定手順設定手順

• ログアクションへ以下のように設定し、WLIプロセスの実行結果を OSBのサーバログへ出力します。

Copyright© 2012, Oracle and/or its affiliates. All rights reserved.

<式> : $result注釈付き : << OSB-WLI連携サンプル >> 重大度レベル : 情報

Page 20: Oracle service-bus-weblogic-integration

• テスト・コンソールを用いて HelloProcessPS を実行します。

設定手順設定手順設定手順設定手順

• テスト・コンソールの結果画面やサーバログを確認します。

この例ではユーザ名にWebLogic を指定しています

サーバログへ出力された内容サーバログへ出力された内容サーバログへ出力された内容サーバログへ出力された内容

Copyright© 2012, Oracle and/or its affiliates. All rights reserved.

<BEA-000000> < [PipelinePairNode1, PipelinePairNode1_request, stage1, REQUEST] << OSB-WLI連携サンプル >>: こんにちは、WebLogicさん!>

サーバログへ出力された内容サーバログへ出力された内容サーバログへ出力された内容サーバログへ出力された内容

Page 21: Oracle service-bus-weblogic-integration

Copyright© 2012, Oracle and/or its affiliates. All rights reserved.

Page 22: Oracle service-bus-weblogic-integration

Copyright© 2012, Oracle and/or its affiliates. All rights reserved.