| Interstage Application Server J2EE ユーザーズガイド |
目次
索引
![]()
|
| 第3部 EJB編 | > 第14章 EJBアプリケーションの呼出し方法 | > 14.1 Session Beanの呼出し方法 |
以下は、Session Beanを呼び出すクライアントアプリケーションの記述例です。
SampleClient.java
package Sample;
import javax.ejb.*;
import java.rmi.*;
import java.util.*;
import com.fujitsu.interstage.ejb.jndi.*;
class SampleClient
{
public static void main(String args[]){
SampleHome h = null;
SampleRemote r = null;
// lookupの処理を行います
try{
// InitialContext獲得
// デフォルトコンストラクタ指定で獲得する(注1)
javax.naming.Context ic = new javax.naming.InitialContext();
// lookup (1)
java.lang.Object Obj = (java.lang.Object)ic.lookup("SampleBean");
/* Enterprise Beanオブジェクトのlookup処理を行います */
// homeのnarrow() (2)
h = (SampleHome)javax.rmi.PortableRemoteObject.narrow( Obj, SampleHome.class);
}catch (Exception e){
System.err.println("lookup Failed");
e.printStackTrace();
System.exit(1);
}
// create
try{
/* EJBアプリケーションのcreate処理を行います */
r = (SampleRemote)h.create("create sample");
}catch (CreateException e){
System.err.println("CreateException Catched");
e.printStackTrace();
System.exit(1);
}catch (RemoteException e){
System.err.println("RemoteException Catched");
e.printStackTrace();
System.exit(1);
}catch (Exception e){
System.err.println("create Failed");
e.printStackTrace();
System.exit(1);
}
// invoke business method
try{
int ret;
/* ビジネスメソッドの処理を行います */
ret = r.business1(1,2);
System.out.println(ret);
ret = r.business2(2,8);
System.out.println(ret);
}catch (RemoteException e){
System.err.println("RemoteException Catched");
e.printStackTrace();
System.exit(1);
}catch (Exception e){
System.err.println("business method Failed");
e.printStackTrace();
try{
r.remove();
}catch (Exception ex){
System.err.println("remove Failed");
ex.printStackTrace();
}
System.exit(1);
}
// remove
try{
/* EJBアプリケーションのremove処理を行います */
r.remove();
}catch (RemoveException e){
System.err.println("RemoveException Catched");
e.printStackTrace();
System.exit(1);
}catch (RemoteException e){
System.err.println("RemoteException Catched");
e.printStackTrace();
System.exit(1);
}catch (Exception e){
System.err.println("remove Failed");
e.printStackTrace();
System.exit(1);
}
}
}

EJBクライアントを使用してクライアントアプリケーションを起動する際に、以下の環境プロパティを指定し起動してください。J2EEアプリケーションクライアントと、サーブレット/JSPが提供する各機能を使用する場合には、“JNDIサービスプロバイダの環境設定”を参照してください。
-Djava.naming.factory.initial=com.fujitsu.interstage.ejb.jndi.FJCNCtxFactoryForClient

java -Djava.naming.factory.initial
=com.fujitsu.interstage.ejb.jndi.FJCNCtxFactoryForClient Javaアプリケーション名
記述例はHomeインタフェースの例ですが、LocalHomeインタフェースを経由してSession Beanにアクセスする場合には、記述例の(1)と(2)の処理が異なります。
以下のようにlookupで取得したオブジェクトを直接キャストして、narrowメソッドを実行する必要はありません。
Context initialContext = new InitialContext();
CartHome cartHome = (CartHome)initialContext.lookup("java:comp/env/ejb/cart");
目次
索引
![]()
|