BEA ホーム | 製品 | デベロッパ・センタ | support | askBEA |
![]() |
![]() |
|
![]() |
e-docs > WebLogic Integration > BPM トピック > BPM クライアント アプリケーション プログラミング > プロセス エンジンへの接続 |
BPM クライアント アプリケーション プログラミング
|
プロセス エンジンへの接続
この章では、WebLogic Integration プロセス エンジンに接続して Business Process Management (BPM) フレームワークの機能にアクセスする方法について説明します。この章の内容は以下のとおりです。
API セッション EJB へのアクセス
EJB はすべて、ホーム インタフェースとリモート インタフェースを使用して BPM API セッション EJB にアクセスする必要があります。この目的で使用できるホーム インタフェースとリモート インタフェースを次の表に示します。
BPM API セッション EJB およびそのメソッドにアクセスする手順は、次のとおりです。
以下の節では、この 2 つの手順を詳しく説明します。
手順 1 −セッション EJB のホーム インタフェースを JNDI でルックアップする
BPM セッション EJB は、WebLogic Server JNDI ネームスペースの一部としてクライアント アプリケーションにエクスポーズされます。
セッション EJB のホーム インタフェースをルックアップするには、まず、JNDI コンテキスト(java.naming.Context)を構築します。この最も一般的な方法は、javax.naming.InitialContext オブジェクトをインスタンス化することです。EJB とそのメソッドにアクセスするために認可用の特定のセキュリティ コンテキストを必要とするクライアント アプリケーションに対しては、セキュリティ証明(ユーザ名やパスワードなど)も InitialContext() コンストラクタに渡す必要があります。
たとえば、JSP Worklist サンプルからの抜粋である以下のメソッドでは、初期コンテキストが作成され、指定の URL、ユーザ ID、およびパスワードがコンテキスト環境として渡されます。
public Context getInitialContext(
String user,
String password,
String url
) throws NamingException
{
// 初期コンテキストを取得する
Properties h = new Properties();
h.put(Context.INITIAL_CONTEXT_FACTORY,"weblogic.jndi.WLInitialContextFactory");
h.put(Context.PROVIDER_URL, url);
if (user != null) {
h.put(Context.SECURITY_PRINCIPAL, user);
if (password == null)
password = "";
}
h.put(Context.SECURITY_CREDENTIALS, password);
return new InitialContext(h);
}
詳細については、Javadoc の javax.naming.InitialContext() を参照してください。JSP Worklist の詳細については、JSP Worklist サンプルを参照してください。
JNDI コンテキストの定義後は、JNDI コンテキスト lookup() メソッドを使用してセッション EJB のホーム インタフェースにアクセスできます。
たとえば、Worklist セッション EJB のホーム インタフェースをルックアップしてオブジェクト参照を worklistHome 変数に格納するには、次の文を実行します。
Context context = getInitialContext(url, userId, password);
Object result = context.lookup("com.bea.wlpi.Worklist");
WorklistHome worklistHome =(WorklistHome)
PortableRemoteObject.narrow(result, WorklistHome.class);
同様に、WLPIPrincipal セッション EJB のホーム インタフェースをルックアップしてオブジェクト参照を principalHome 変数に格納するには、次の文を実行します。
Context context = getInitialContext(url, userId, password);
object result = context.lookup("com.bea.wlpi.WLPIPrincipal");
PrincipalHome prinicipalHome=(PrincipalHome)
PortableRemoteObject.narrow(result,
WLPIPrinicipalHome.class);
注意: 上記のサンプルで使用されている PortableRemoteObject.narrow() メソッドにより、リモート オブジェクトが目的のタイプに確実にキャストされます。このメソッドは、システムが RMI-IIOP を使用するようコンフィグレーションされている場合に使用することが必須となります。これ以外の場合は、任意ですが、使用することをお勧めします。詳細については、Javadoc の javax.rmi.PortableRemoteObject クラスを参照してください。
手順 2 −ホーム インタフェースを使用してリモート セッション オブジェクトを作成する
ホーム インタフェースへの参照の取得後は、ホーム インタフェース オブジェクト create() メソッドを使用してリモート セッション オブジェクト(EJBObject)にアクセスできます。
たとえば、Worklist セッション EJB の EJBObject を作成してオブジェクト参照を worklist 変数に格納するには、次の文を実行します。
Worklist worklist = worklistHome.create();
同様に、WLPIPrincipal セッション EJB の EJBObject を作成してオブジェクト参照を principal 変数に格納するには、次の文を実行します。
WLPIPrincipal wlpiprincipal = principalHome.create();
コンビニエンス メソッドを使用した EJB へのアクセス
com.bea.wlpi.client.common.WLPI クラスには、セッション EJB にアクセスするためのコンビニエンス メソッド群が含まれています。これらのメソッドを次の表にまとめます。
詳細については、Javadoc の com.bea.wlpi.client.common.WLPI を参照してください。
![]() |
![]() |
![]() |
![]() |
||
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |