2011-07-20 52 views
0

我將開發一個webservice,它將公開兩個操作。這些操作將從數據庫中查詢/更新數據。帶有EJB的Weblogic WebService

請建議我使用EJB進行數據庫操作,我會得到什麼優勢?

在我的web

我使用JPA直接像以下,創造我的實體,並堅持他們

@PersistenceUnit private EntityManagerFactory emf; 
@Resource 
private UserTransaction utx; 

請優點/缺點回答。

問候, 伊姆蘭

回答

0

這兩種方法都是有效的,並通過Java EE的支持,所以這只是一個設計根據我的經驗推薦:

千萬不要直接暴露EJB操作如Web服務,它只會增加運行時複雜性。如果將EJB作爲Web服務發佈,那麼容器必須仍然使用內部的Web服務servlet將其隱藏起來,該服務隱式地將包含內部Web服務映射的WAR與您的ejb-jar(取決於應用程序服務器產品) 。而且,在日常操作中很難調試。

我只使用標準的Java EE的推薦功能,而不使用任何附加的庫:

  • POJO定義Web服務接口,又稱其業務(@WebService註釋)。它委託給一個功能實現。我們稱之爲POJO WS-POJO

兩個選項來實現的功能:

  1. WS-POJO調用無狀態會話bean提供其所需的功能。 Pro:所有可用的EJB功能(依賴注入,聲明式事務管理等)。 Con:「重量級」
  2. WS-POJO調用例如後續的POJO。 命令模式。 Pro:「輕量級」。騙局:依賴注入不可能;實體經理等被傳遞。

今天,我會選擇#1 ...我的2分