ページの先頭行へ戻る
Interstage Application Server J2EE ユーザーズガイド(旧版互換)
FUJITSU Software

32.3.2 J2EEアプリケーションクライアント-EJB連携の移行

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を編集する際に以下のように定義を追加します。


  1. Interstage StudioのXMLエディタを起動します。

  2. [ソース]タブを選択し、セキュリティロールを追加します。ここでは、管理者権限を持つセキュリティロール「Admin」を追加します。

    セキュリティロール名

    説明

    Admin

    管理者

  3. アクセスを制御する「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ファイルの作成が必要です。

  1. クライアントアプリケーションの修正

    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形式で記述してください。

  2. deployment descriptorの作成

    リソースアクセスや名前変換機能を使用する場合にはdeployment descriptorファイルを作成する必要があります。EJBプロジェクトを作成後、以下のようにdeployment descriptorファイルを作成してください。

    1. [ファイル]メニューの[新規]の[その他]を選択します。

    2. [新規]ダイアログの[XML]の[XML]を選択します。

    3. [新規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ファイルの設定およびコマンドラインの変更が必要です。


1) 環境変数の設定

環境変数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
2) FJjndi.propertiesファイルの設定

名前変換機能やセキュリティ機能を使用する場合には「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 ディレクトリサービスへの設定方法については、「ディレクトリサービス運用ガイド」の「エントリの管理」を参照してください。

3) コマンドラインの変更

クライアントアプリケーションを実行するコマンドラインを以下のように変更します。

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