Enterprise Bean開発を例に、J2EEに移行する場合の手順の相違点を以下に説明します。
注意
EJBの場合、Interstage V3.xとは動作に違いがある機能が存在しますので、Enterprise Beanを開発する際には注意が必要です。詳しくは「32.5 EJBサービスの移行」を参照してください。
Step1:Enterprise Beanを開発する
J2EEのセキュリティ機能を使用する場合には、セキュリティロール定義とメソッドパーミッション定義が必要です。メソッドパーミッション機能を使用することにより、J2EEアプリケーションクライアントやWebアプリケーションの認証機能と連携して、EJBアプリケーションの不当アクセスを制限することができます。J2EEのセキュリティ機能を使用する場合の運用環境の設定は、「第5章 J2EEアプリケーションのセキュリティ」を参照してください。
ここでは、データベースの変更(レコードの追加/削除)を、管理者のみが行うことができるように制御する例を説明します。Session Beanの開発でdeployment descriptorを編集する際に以下のように定義を追加します。
Interstage StudioのXMLエディタを起動します。
[ソース]タブを選択し、セキュリティロールを追加します。ここでは、管理者権限を持つセキュリティロール「Admin」を追加します。
セキュリティロール名 | 説明 |
---|---|
Admin | 管理者 |
アクセスを制御する「TutorialSession」を選択し、「メソッドパーミッション」を定義します。レコードを更新する「insertRecord」メソッドと、レコードを削除する「deleteRecord」メソッドに対して次のように定義を追加します。
セキュリティロール名 | メソッド名 | インタフェース | パラメタリスト | 説明 |
---|---|---|---|---|
Admin | insertRecord | Remote | int,java.lang.String | 更新 |
Admin | deleteRecord | Remote | int | 削除 |
上記の設定を行うことによって、メソッドに設定されたセキュリティロールに属するユーザ以外がメソッドを実行した場合には例外が返却されます。
Step2:Enterprise Beanをパッケージ化する~ejb-jarファイルの作成~
この手順には特に相違はありません。
Step3:Enterprise Beanを実行可能な状態にする
EJBアプリケーションの展開~配備についてはInterstage管理コンソールで行うことができます。
また、データソースの登録についても、Interstage管理コンソールで行います。
詳細についてはInterstage管理コンソールのヘルプを参照してください。
Step4:クライアントアプリケーションを開発する
クライアントアプリケーションのlookup処理の記述形式を変更する必要があります。また、J2EEアプリケーションクライアントの機能(リソースアクセスなど)を使用するためにdeployment descriptorファイルの作成が必要です。
クライアントアプリケーションの修正
Tutorial.javaのlookup処理で指定する、参照するEJBアプリケーション名をEnterprise Bean Environment形式に変更します。
Interstage V3.x形式のソース
try{
InitialContext ic = new InitialContext();
java.lang.Object obj = ic.lookup("TutorialSession");
home = (TutorialSessionHome)PortableRemoteObject.narrow
(obj, TutorialSessionHome.class);
}catch(Exception ex){
・・・
J2EE形式のソース
try{
InitialContext ic = new InitialContext();
java.lang.Object obj = ic.lookup("java:com/env/ejb/TutorialSession");
home = (TutorialSessionHome)PortableRemoteObject.narrow
(obj, TutorialSessionHome.class);
}catch(Exception ex){
・・・
ポイント
Interstage V3.xまでの記述でも動作可能ですが、J2EEアプリケーションクライアントではEnterprise Bean Environment形式でlookup処理を行うことを推奨しています。
ただし、リソース接続者管理機能を使用する場合は、必ずEnterprise Bean Environment形式で記述してください。
deployment descriptorの作成
リソースアクセスや名前変換機能を使用する場合にはdeployment descriptorファイルを作成する必要があります。EJBプロジェクトを作成後、以下のようにdeployment descriptorファイルを作成してください。
[ファイル]メニューの[新規]の[その他]を選択します。
[新規]ダイアログの[XML]の[XML]を選択します。
[新規XMLファイル]ウィザードの[XMLファイルの作成]ページで必要な情報を設定し、保存して終了します。
参照
deployment descriptorの定義項目についての詳細は「5.2.4 J2EEアプリケーションクライアントの設定」を参照してください。
例
deployment descriptorファイルの例
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE application-client PUBLIC '-//Sun Microsystems, Inc.//DTD J2EE Application Client1.2//EN' 'http://java.sun.com/j2ee/dtds/application-client_1_2.dtd'> <application-client> <icon> <small-icon>smallicon.jpg</small-icon> <large-icon>largeicon.jpg</large-icon> </icon> <display-name>display</display-name> <description>Tutorial</description> <ejb-ref> <description>EJB Information</description> <ejb-ref-name>ejb/TutorialSession</ejb-ref-name> <ejb-ref-type>Session</ejb-ref-type> <home>TutorialSessionHome</home> <remote>TutorialSessionRemote</remote> <ejb-link>TutorialSession</ejb-link> </ejb-ref> </application-client>
Step5:Enterprise Beanを運用する
J2EEアプリケーションクライアントの場合には、環境変数の設定、FJjndi.propertiesファイルの設定およびコマンドラインの変更が必要です。
環境変数CLASSPATHに、次の値が設定されていない場合は設定してください。
C:\Interstage\J2EE\lib\isj2ee.jar %ProgramFiles%\Common Files\FujitsuXML\xmlpro.jar %ProgramFiles%\Common Files\FujitsuXML\xmltrans.jar
/opt/FJSVj2ee/lib/isj2ee.jar /opt/FJSVj2ee/lib/isj2ee.jar /opt/FJSVxmlpc/lib/xmltrans.jar
名前変換機能やセキュリティ機能を使用する場合には「FJjndi.propertiesファイル」に必要な環境プロパティを指定する必要があります。このファイルに設定するユーザIDとパスワードはInterstage ディレクトリサービスに設定する必要があります。
例
FJjndi.propertiesファイルの記述例
FJUserID=j2ee FJPassword=j2ee com.fujitsu.interstage.j2ee.DeploymentDescriptorClient=C:\work\TutorialClient\application-client.xml
FJUserID=j2ee FJPassword=j2ee com.fujitsu.interstage.j2ee.DeploymentDescriptorClient=/export/home/j2eeapl/TutorialClient/application-client.xml
参照
FJjndi.propertiesファイルの詳細については、「5.2.4 J2EEアプリケーションクライアントの設定」を参照してください。
ユーザIDとパスワードのInterstage ディレクトリサービスへの設定方法については、「ディレクトリサービス運用ガイド」の「エントリの管理」を参照してください。
クライアントアプリケーションを実行するコマンドラインを以下のように変更します。
Interstage V3.xの場合
java -Djava.naming.factory.initial=com.fujitsu.interstage.ejb.jndi.FJCNCtxFactoryForClient Tutorial
J2EEの場合
java -Djava.naming.factory.initial=com.fujitsu.interstage.j2ee.jndi.InitialContextFactoryForClient Tutorial