2017-04-21 10 views
1

は、豆EJBおよびJAX-RSリソースの両方のビーンEJBの両方とJX-RSリソースは、アプリケーションサーバによって実行時に作成されたオブジェクトの面で

  • 作りの違いは何です

    @Stateless
    @Local
    @Path( "現在")
    パブリッククラス外観

    {

    @PersistenceContext
    EntityManager entityManager;

    @EJB
    ...

    //方法二つの異なる豆を

    を用い
    }

  • @Path( "現在")
    パブリッククラス外観
    {
    @EJB
    private MyEjb myEjb;

    //メソッド
    }

    @Stateless
    @Local
    パブリッククラスMyEJB
    {
    //メソッド
    }あなたの答えのための

ありがとう!

EDIT:

AHAH多分私の本当の質問は、EJBにJAX-RSのアノテーションを使用しての結果だが、私は尋ねた「は、基本的に同じ質問というかについてだろう。

+0

私は確かにあなたがデータを収集しているあなたの頭の後ろに疑問を持っていると確信しています。代わりに質問してみてください。文脈がなくてもこれはあまりにもあいまいです。 – Gimby

答えて

2

これは機能します。しかし、Oracle仕様に固執すれば、EJBをWebサービス(休憩や石鹸)として公開することは、近い将来にこのアプローチに戻っていくことを約束している、一種の迅速な解決策です:-)

Infact、 Oracleが言うこと、EJBはビジネス層に存在し、Webサービスは統合レイヤーになければなりません。

私はEJBを暴露することは間違ったアプローチであるが、それはJavaで、残りのサービスを開発することは非常に簡単であるという理由だけで、私はファサードクラスを作成し、サービスに変換することを主張しておりません。それから私はEJBをクラスに注入します。もしそれが休止していれば、jndiルックアップによって注入します。懸念のより良い分離をする。

このようにして、アノテーションが詰まった1つのクラスで終わることはありませんが、柔軟性を導入し、進化する可能性のあるアーキテクチャを持つことができます。たとえば、今後ビジネスレイヤを専用マシン...何でも。

+0

私は上記の理由から、EJBが "統合層"にある間にREST APIを実装し公開するべきでない理由を理解していません。セキュリティとトランザクションのセマンティクスは、EJBを使って簡単に設定することができます。これは、標準のEEツールであるサーブレット実装のほうが優れていますか? – garfield

+0

よりよい選択肢は、クラスをWebサービスとしてのみ動作させることです。ビジネスオペレーションをejbに委譲します – Leonardo