Javaアプリケーションとの違い
EJBクライアントを使用してクライアントアプリケーションをJavaアプレットとして開発する場合は、Javaアプリケーションと以下が違います。
Javaアプレットでのlookup処理の記述方法
以下に、Javaアプレットでのlookup処理の記述例を示します。
// InitialContext獲得 Hashtable env = new Hashtable(); ・・・・1 env.put("java.naming.factory.initial", "com.fujitsu.interstage.ejb.jndi.FJCNCtxFactoryForClient"); ・・・・1 env.put("java.naming.applet", this); ・・・・1 javax.naming.Context ic = new javax.naming.InitialContext( env); ・・・・2 // lookup java.lang.Object Obj = (java.lang.Object)ic.lookup("SampleBean"); ・・・・3 // homeのnarrow() h = (SampleHome)javax.rmi.PortableRemoteObject.narrow( Obj, SampleHome.class); ・・4
Contextを作成するときの環境情報を設定します。このとおりに記述してください。
lookupするためのContextを作成します。このとおりに記述してください。
lookupを行います。引数にEJBアプリケーション名を指定してください。lookupに失敗した場合、javax.naming.NameNotFoundException例外が発生します。
失敗の理由は当例外の詳細メッセージとして通知されます。
lookupに失敗したときの対処方法については、“30.9 EJBサービス使用時の異常”を参照してください。
lookupしたオブジェクトをnarrowします。javax.rmi.PortableRemoteObject.narrowを発行してください。
注意
Portable-ORBを使用しないでアプレットを利用する場合は、使用するEJBアプリケーションのクライアント配布物をWebサーバからダウンロードして使用することはできません。
クライアント配布物はクライアント環境に複写して、複写先のjarまたはフォルダをCLASSPATHに設定して使用してください。
参照
Javaアプレットの開発の詳細については、“15.6 Javaアプレットを使用する場合(プレインストール型Javaライブラリ)”、“15.7 Javaアプレットを使用する場合(Portable-ORB)”を参照してください。
Portable-ORBを使用する場合は、“4.2.1 クライアント環境での環境設定”を参照してください。
ポリシーファイルの設定
Javaアプレットを実行する場合には、実行するマシンごとにJBKプラグインが使用するポリシーファイルへの設定が必要です。設定する情報は以下のとおりです。
EJBサービスのクラス
JDKのクラス
例
設定例を以下に記載します。JBKプラグインが使用するポリシーファイルについての詳細は、Interstage Studioの“J Business Kit オンラインマニュアル”を参照してください。
EJBサービスのクラス
(Interstage インストールフォルダ : C:\Interstageとした場合)
grant codeBase "file:/C:/Interstage/EJBCL/LIB/-" {
permission java.security.AllPermission;
};
JDKのクラス
(Interstageインストールフォルダ : C:\ Interstageとした場合)
JDK5.0を使用する場合
grant codeBase "file:/C:/Interstage/JDK5/jre/lib/-" {
permission java.security.AllPermission;
};
JRE5.0を使用する場合
grant codeBase "file:/C:/Interstage/JRE5/lib/-" {
permission java.security.AllPermission;
};
注意
旧バージョンと同様にJavaアプリケーションを実行する場合でも、システムプロパティに以下を指定するとEJBを参照することが可能ですが、通常はJ2EEアプリケーションクライアントで説明したように、JNDI SPを指定してください。
java.naming.factory.initial=com.fujitsu.interstage.ejb.jndi.FJCNCtxFactoryForClient