EJBセッションBeanのJBossテスト・クライアントの作成

JSPクライアントから分離されたスタンドアロンJavaアプリケーションは、EJBセッションBeanとしてJBossアプリケーション・サーバーにデプロイされるビジネス・コンポーネント・アプリケーション・モジュールにアクセスできます。

セッションBeanとしてデプロイされるビジネス・コンポーネント・アプリケーション・モジュールと対話する新規クラスを作成します。これはスタンドアロンJavaアプリケーションであり、セッションBeanを検索し、ApplicationModuleProxyクラスを使用してアプリケーション・モジュールへの参照を取得します。

EJBセッションBeanのJBossテスト・クライアントを作成するには、次の手順を実行します。

  1. ナビゲータで、クラス・ファイルを作成する<projectname>.jprを選択します。
  2. 「ファイル」次に選択「新規」を選択し、「新規ギャラリ」を開きます。
  3. 「カテゴリ」ツリーで、「General」を開き、「Simple Files」を選択します。「項目」リストで、「Javaクラス」をダブルクリックします。

    カテゴリまたは項目が見つからなければ、正しいプロジェクトが選択されていることを確認して、「フィルタ方法」ドロップダウン・リストの「すべてのテクノロジ」を選択します。

  4. 「Javaクラスの作成」ダイアログで、デフォルトの設定のまま「OK」をクリックします。
  5. 新規に作成したJavaソース・ファイルに次のimport文を追加します。
        import oracle.jbo.*;
        import javax.naming.*;
        import java.util.*;
        import mypackage2.common.ejb.beanmanaged.Mypackage2ModuleHome;
        import oracle.jbo.client.remote.ejb.ApplicationModuleProxy;
    	            
  6. 次のメイン・メソッドをクラスに追加します。

        public static void main(String[] args)
        {
          try
          {
            Hashtable env = new Hashtable();      
            env.put(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory");      
            env.put(Context.PROVIDER_URL, "localhost");      
            env.put(Context.URL_PKG_PREFIXES, "org.jboss.naming:org.jnp.interfaces" );      
            Context ctx = new InitialContext(env);      
    
            Mypackage2ModuleHome beanHome  = (Mypackage2ModuleHome )ctx.lookup("mypackage2.Mypackage2Module");
    
            // Create the proxy. If you have exported methods then you can cast it to your common am interface.
            ApplicationModule am = ApplicationModuleProxy.create(beanHome, env);
    
            //
            // Note: Change this connect string to the connect string you use to connect to your database
            //
            am.getTransaction().connectToDataSource( null, "java:/OracleDS", null, null, false );
            System.out.println( am.getClass() );
            String[] voNames = am.getViewObjectNames();
            ViewObject vo = am.findViewObject("DeptView");
    
            Row row;
            while ( ( row = vo.next() ) != null )
            {
              int numAttrs = row.getAttributeCount();
              for ( int i=0; i  numAttrs; i++ )
              {
                System.out.println( "Name= " + vo.getAttributeDef(i).getName() +
                                    " Value= " + row.getAttribute(i) );
              }
              System.out.println("");
            }
            am.getTransaction().disconnect();
          }
          catch ( Exception ex )
          {
            ex.printStackTrace();
          }
        }
    	        

テスト・クライアントを実行するには、次の手順を実行します。

  1. プロジェクト設定を編集し、J2EEライブラリおよびOracle Application Serverライブラリを削除して、JBossライブラリをプロジェクトに追加します。
  2. テスト・クライアントを実行します。
  3. DEPTデータベース表の内容がアプリケーションのログ・ウィンドウに表示されていることを確認します。

関連項目

JBossアプリケーション・サーバー
JBossでのOracleデータソースの作成
JBossアプリケーション・サーバーへのデプロイ