ステートレスEJB Session Beanを使用してADFビジネス・コンポーネントからWebサービスを作成

アプリケーション・モジュールをサービスSession Beanとして公開することで、ADFビジネス・コンポーネントからWebサービスを作成できます。この方法は、実装の一部としてWebサービスが他のEJB Session Beanと対話する必要がある場合に適しています。ADFビジネス・コンポーネントからWebサービスを作成するもう1つの方法では、アプリケーション・モジュールのWebサービス・クラスを生成して、そのクラスからWebサービスを作成します。

EJB Session Beanとしてデプロイするように、ADFビジネス・コンポーネントのアプリケーション・モジュールを構成できます。詳細は、「EJBセッションBeanとしてのADF Business Componentsのパッケージ化」を参照してください。デフォルトではステートフルSession Beanですが、そこからWebサービスを作成するには、ステートレスSession Beanに変更する必要があります。

次の手順では、ADFビジネス・コンポーネント・ベースのステートフルSession Beanを、ステートレスSession Beanに変更する方法を説明します。

BeanをステートレスSession Beanに変更するには、次のようにします。


// NOTE: Need to add imports for javax.ejb.CreateException and java.rmi.RemoteException
public String someExposedMethod(int x) throws java.rmi.RemoteException
{
        try
    {
      // (Step 1) Add this line -- Create the application module
      createApplicationModule("mypkg.MypkgModule");

      // (Step 2) Add this line -- Connect the appmodule to a datasource using the
      // ejb-location name of the datasource from the data-sources.xml file
      getApplicationModule().getTransaction().connectToDataSource(null,"jdbc/OracleDS",false);

      return getMypkgModule().someExposedMethod(x);
     }
     // (Step 3) Add this catch block
     catch(javax.ejb.CreateException ex)
     {
             throw new RemoteException("Create error", ex);
     }
     catch(oracle.jbo.JboException ex)
     {
             //  Convert JboException to service exception below
        //  Business methods shouldn't throw RuntimeException
        ex.printStackTrace();
        throw ex;
      }
        // (Step 4) Add this finally block to remove the appmodule
        finally {
                // Add this line -- Remove the application module
                removeApplicationModule();
       }
   }    

 

Copyright © 1997, 2004, Oracle. All rights reserved.