2017-04-21 87 views
1

在應用程序服務器在運行時創建的對象而言,就是豆既是EJB和JX-RS資源

  • 製作豆既是EJB和JAX-RS資源之間的差異

    @Stateless
    @Local
    @Path( 「當前」)
    公共類門面
    {

    @PersistenceContext
    EntityManager entityManager;

    @EJB
    ...

    //使用兩種不同的豆類

    @Path( 「本期」)的方法
    }


  • 公共類門面
    {
    @EJB
    private MyEjb myEjb;

    //方法
    }

    @Stateless
    @Local
    公共類MyEJB
    {
    //方法
    }

謝謝您的回答!

編輯:

AHAH也許我真正的問題是什麼是使用上的EJB JAX-RS註釋的結果,但是這基本上是相同的問題,我問。

+0

我非常肯定你在收集數據的背後有一個問題,請嘗試提出這個問題。這太含糊不清,無法回答。 – Gimby

回答

2

它的工作原理。但是,如果我們堅持使用Oracle規範,將EJB作爲Web服務(休息或肥皂)公開是一種快速解決方案,並且您承諾在不久的將來重新使用這種方法:-)

Infact,再次堅持甲骨文表示,EJB應該駐留在業務層上,Web服務應該在集成層中。

我不認爲公開EJB是一種錯誤的方法,但僅僅因爲在Java中開發rest服務非常容易,我會創建一個façade類並在服務中進行轉換。然後,我會將EJB注入類中,或者如果它是休息,則通過jndi查找。更好地分離關注點。

這樣你就不會得到一個塞滿了註釋的類,但是你引入了靈活性,並且有一個可能發展的體系結構,例如,也許你可以在將來決定將業務層部署在專用機器......無論如何。

+0

我從上面不太明白爲什麼EJB不應該在「集成層」中實現和公開REST API。安全性和事務性語義可以通過EJB很容易地設置,畢竟,考慮到標準EE工具和servlet實現,這是更好的選擇嗎? – garfield

+0

更好的選擇是讓一個類只作爲Web服務,將其業務操作委託給ejb – Leonardo