2012-02-01 14 views
0

通信チャネルの反対側で作成されたEJB3サービスへのポインタ(JNDI)があります。つまり、顧客アプリケーションサーバー上に作成されました。 これで、EJB3を呼び出すためのADFベースのインタフェースが必要になりました。 私はインターフェイスに問題はありませんが、私はEJB3を呼び出す方法に苦労しています。EJB3クライアントを使用するOracle ADF

public class SessionEJBClient { 
    public static void main(String[] args) { 
     try { 
      final Context context = getInitialContext(); 
      SessionEJB sessionEJB = (SessionEJB)context.lookup("MyApp-SessionEJB#org.test.SessionEJB"); 
     } catch (CommunicationException ex) { 
      System.out.println(ex.getClass().getName()); 
      System.out.println(ex.getRootCause().getLocalizedMessage()); 
      System.out.println("\n*** A CommunicationException was raised. This typically\n*** occurs when the target WebLogic server is not running.\n"); 
     } catch (Exception ex) { 
      ex.printStackTrace(); 
     } 
    } 

    private static Context getInitialContext() throws NamingException { 
     Hashtable env = new Hashtable(); 
     // WebLogic Server 10.x connection details 
     env.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory"); 
     env.put(Context.PROVIDER_URL, "t3://serverhost:serverport"); 
     return new InitialContext(env); 
    } 
} 

か、またはそれを行うための他の方法があります:それは、クライアントによって行われているよう は、私は私のバッキングBeanでそれを行うべきか?つまり、リモートEJB3を参照して呼び出す正しい方法は何ですか?

10倍

答えて

0

もしかして「とMVCパターンを尊重」し、エンティティ・オブジェクトをオーバーライドし、最善の方法があるようですからEJBにアクセスする場合。それから、その上に構築されたVOが「通常の」ADF BCレイヤーを与えることができます。アプリケーションモジュールを作成すると、データコントロールとして公開され、宣言的にページを構築できます。ただし、ADFBCレイヤーは、必要に応じて厚すぎる可能性があります。

ADF BCを使用したくない場合は、EJBの周りのファサードとして機能し、コールを委譲するために、ステートレスセッションBeanを(モデル層に)再び作成できます。両方の場合の利点は、ビジネス・ロジック(私が想定しているEJB)をViewレイヤーから分離することです.ADFでは、ADF BCまたはセッションBeanレイヤーからデータ・コントロールを作成し、これをADF Facesページの基礎として使用できます。

+0

これはすべてOKですが、リモートEJB3を呼び出す方法、つまりリモートEJB3を呼び出す方法の例が必要です。私は例が必要です。 – zmeda

+0

これはあなたが何を意味するのですか?http://stackoverflow.com/questions/293835/how-to-call-remote-ejb-from-standalone-client、またはこれ?http://www.codeproject.com/Articles/ 25741/EJB-3-0-Remote-Session-Bean-Lookup - これはADFとは関係ありません_標準のJEE – Joe

0

ADFはPOJOまたはセッションEJBの上で動作できます。 したがって、EJBを呼び出すJavaレイヤーを作成すると、そのJavaレイヤーをADFデータ・コントロールとして公開し、ADF UIを作成するためにドラッグ・アンド・ドロップすることができます。 http://blogs.oracle.com/shay/2009/07/java_class_data_control_and_ad.html http://blogs.oracle.com/shay/2009/01/insert_update_for_jpaejb_30_wi.html

それとも、むしろADFバインディング層をスキップする場合は、EJBを呼び出してから、ADFを結合する管理対象Beanを書くことができますUIを直接それらのBeanに追加します。

関連する問題