BEA ホーム | 製品 | デベロッパ・センタ | support | askBEA
 ドキュメントのダウンロード   サイト マップ   用語集 
検索

BPM クライアント アプリケーション プログラミング

 前 次 目次 索引 PDFで表示  

プロセス エンジンへの接続

この章では、WebLogic Integration プロセス エンジンに接続して Business Process Management (BPM) フレームワークの機能にアクセスする方法について説明します。この章の内容は以下のとおりです。

 


API セッション EJB へのアクセス

EJB はすべて、ホーム インタフェースとリモート インタフェースを使用して BPM API セッション EJB にアクセスする必要があります。この目的で使用できるホーム インタフェースとリモート インタフェースを次の表に示します。

表3-1 API セッション EJB のホーム インタフェースとリモート インタフェース

EJB 名

ホーム インタフェース

リモート インタフェース

com.bea.wlpi.server.admin.Admin

AdminHome

Admin

com.bea.wlpi.server.audit.Audit

AuditHome

Audit

com.bea.wlpi.server.catalog.EJBCatalog

EJBCatalogHome

EJBCatalog

com.bea.wlpi.server.permission.
Permission

PermissionHome

Permission

com.bea.wlpi.server.plugin.
PluginManager

PluginManagerHome

PluginManager

com.bea.wlpi.server.plugin.
PluginManagerCfg

PluginManagerCfgHome

PluginManagerCfg

com.bea.wlpi.server.serverproperties.
ServerProperties

ServerPropertiesHome

ServerProperties

com.bea.wlpi.server.principal.
WLPIPrincipal

WLPIPrincipalHome

WLPIPrincipal

com.bea.wlpi.server.worklist.Worklist

WorklistHome

Worklist

com.bea.eci.repository.ejb.
XMLRepository

XMLRespositoryHome

XMLRepository


 

BPM API セッション EJB およびそのメソッドにアクセスする手順は、次のとおりです。

  1. セッション EJB のホーム インタフェースを JNDI でルックアップします。

  2. そのホーム インタフェースを使用してリモート セッション オブジェクト(EJBObject)を作成します。

以下の節では、この 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 にアクセスするためのコンビニエンス メソッド群が含まれています。これらのメソッドを次の表にまとめます。

表3-2 EJB にアクセスするためのコンビニエンス メソッド

メソッド

説明

public com.bea.wlpi.server.admin.Admin getAdmin( ) throws java.lang.IllegalStateException, com.bea.wlpi.common.WorkflowException

Admin EJB オブジェクトを返す。

public com.bea.wlpi.server.catalog.EJBCatalog getCatalog( ) throws java.lang.IllegalStateException, com.bea.wlpi.common.WorkflowException

EJBCatalog EJB オブジェクトを返す。

public com.bea.wlpi.server.permission.Permission getPermission( ) throws java.lang.IllegalStateException, com.bea.wlpi.common.WorkflowException

Permission EJB オブジェクトを返す。

public com.bea.wlpi.server.plugin.PluginManager getPluginManager( ) throws java.lang.IllegalStateException

PluginManager EJB オブジェクトを返す。

public com.bea.wlpi.server.serverproperties.ServerProperties getServerProperties( ) throws IllegalStateException, WorkflowException

ServerProperties EJB オブジェクトを返す。

public com.bea.wlpi.server.principal.WLPIPrincipal getPrincipal( ) throws java.lang.IllegalStateException

WLPIPrincipal EJB オブジェクトを返す。

public com.bea.wlpi.server.worklist.Worklist getWorklist( ) throws java.lang.IllegalStateException, com.bea.wlpi.common.WorkflowException

Worklist EJB オブジェクトを返す。

public com.bea.eci.repository.ejb.XMLRepository getRepository( ) throws java.lang.IllegalStateException, com.bea.wlpi.common.WorkflowException

XMLRepository EJB オブジェクトを返す。

public boolean connect(
java.awt.Frame owner
java.lang.String url,
java.lang.String userId,
java.lang.String password
) throws java.lang.IllegalStateException

public boolean connect(
java.awt.Frame owner
java.lang.String url,
java.lang.String userId,
java.lang.String password,
int maxRetries,
boolean autoLogon,
boolean graphical
) throws java.lang.IllegalStateException

以下のタスクを実行してプロセス エンジンに接続する。

指定が必要な引数は以下のとおり。

ユーザ ID、パスワード、サーバ URL は、これらの情報をユーザに要求して取得する。操作を簡単にするため、ログイン ダイアログの生成とユーザ入力の取り込みに使用できる client.common.logon クラスが用意されている。このクラスの詳細については、Javadoc の com.bea.wlpi.client.common.logon を参照。

public boolean isConnected()

WLPI インスタンスが接続されているかどうか、つまり WLPIPrincipal セッション EJB への参照が作成されていることを確認する。

public javax.naming.Context getInitialContext()

ホスト アプリケーションの JNDI コンテキストを返す。


 

詳細については、Javadoc の com.bea.wlpi.client.common.WLPI を参照してください。

 

ページの先頭 前 次