Interstage Application Server/Interstage Web Server 移行ガイド
目次 索引 前ページ次ページ

第6章 J2EEの移行> 6.3 INTERSTAGE V3.xからJ2EEアプリケーションへの移行

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

 Enterprise Bean開発を例に、J2EEに移行する場合の手順の相違点を以下に説明します。


 EJBの場合、Interstage V3.xとは動作に違いがある機能が存在しますので、Enterprise Beanを開発する際には注意が必要です。詳しくは“EJBサービスの移行”を参照してください。

Step1:Enterprise Beanを開発する

 J2EEのセキュリティ機能を使用する場合には、セキュリティロール定義とメソッドパーミッション定義が必要です。メソッドパーミッション機能を使用することにより、J2EEアプリケーションクライアントやWebアプリケーションの認証機能と連携して、EJBアプリケーションの不当アクセスを制限することができます。J2EEのセキュリティ機能を使用する場合の運用環境の設定は、“J2EE ユーザーズガイド”の“J2EEアプリケーションのセキュリティ”を参照してください。

 ここでは、データベースの変更(レコードの追加/削除)を、管理者のみが行うことができるように制御する例を説明します。Session Beanの開発でdeployment descriptorを編集する際に以下のように定義を追加します。

  1. Interstage StudioのEJB Deployment Descriptorエディタを起動します。
     
  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ファイルを作成する必要があります。Pure Javaアプリケーションのプロジェクトを作成後、以下のようにdeployment descriptorファイルを作成してください。
     
    1. [ファイル]メニューの[新規作成]を選択します。
    2. [新規作成]ダイアログの“deployment descriptorファイル”を選択します。
    3. [deployment descriptorファイル編集]画面で必要な情報を設定し保存して終了します。

     deployment descriptorの定義項目についての詳細は“J2EE ユーザーズガイド”の“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
-------------------------------------------------------------------------------
【FJjndi.propertiesファイルの記述例】
-------------------------------------------------------------------------------
FJUserID=j2ee
FJPassword=j2ee
com.fujitsu.interstage.j2ee.DeploymentDescriptorClient=/export/home/j2eeapl/TutorialClient/application-client.xml
-------------------------------------------------------------------------------

 FJjndi.propertiesファイルの詳細については、“J2EE ユーザーズガイド”の“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
-------------------------------------------------------------------------------

目次 索引 前ページ次ページ

All Rights Reserved, Copyright(C) 富士通株式会社 2007