我創建了一個Java EE應用程序,並向EJB項目添加了一個無狀態會話Bean。 EJB項目是web/WAR項目中的一個依賴項,我在我的一個servlet中注入了在EJB項目中創建的EJB。這工作正常,我能夠在Web應用程序項目的servlet中部署和調用此EJB的方法。我的困惑是,我認爲EJB必須在EJB容器中有一個接口,它們既可以是本地的,也可以是遠程的。然而在我的例子中,我根本不需要接口,並且能夠直接調用EJB,我認爲至少需要一個本地接口?EJB企業應用程序不需要EJB接口
0
A
回答
1
由於EJB 3.1,您不再需要用於本地服務的EJB接口。任何POJO類都帶有註釋@Stateless,@Stateful或@Singleton將是一個企業會話bean。
返回自然契約一個類的契約包含所有的公共方法 。公共方法打算供其客戶使用 。 Enterprise JavaBeans 3.1 bean的無界面視圖在EJB 3.1 規範(JSR 318)的第3.4.4章中定義如下:
「...會話Bean的無界面視圖是本地視圖 公開了豆類的公共方法,而不使用 單獨的業務接口......「
隱藏所有私有方法。具有包私有和受保護可見性的方法僅對同一包中的類可見 ,並且它們通常僅用於測試目的而被訪問。 JUnit測試 類與「正在測試的類」(CUT)位於同一個包中,並且嘲笑不方便的引用,通常直接訪問 包專用或受保護的字段。
檢查:http://www.oracle.com/technetwork/articles/java/intondemand-1444614.html
相關問題
- 1. 企業OSGi與EJB
- 2. 企業應用程序開發-RMI和EJB
- 3. EJB在企業應用程序中未被識別
- 4. Glassfish的EJB遠程業務接口
- 5. iPhone企業應用程序分配 - 需要Internet連接?
- 6. 訪問企業Bean通過與@EJB
- 7. 新手在企業Java Beans(EJB)
- 8. 需要EJB幫助
- 9. 運行EJB應用程序
- 10. EJB應用程序託管
- 11. 爲什麼我們在EJB 2.0中需要EJB的EJBLocalObject和EJBLocalHome接口?
- 12. 遠程接口視圖ejb仍然可以使用@EJB
- 13. 的Java EJB接口
- 14. EJB調用池從客戶端應用程序EJB
- 15. 遠程業務接口的ejb ref分辨率錯誤 - Glassfish
- 16. 要使Grails應用程序很好地擴展,您需要使用EJB嗎?
- 17. EJB遠程應用程序 - 客戶端
- 18. 企業iOS應用程序
- 19. 生成EJB 2.x接口
- 20. EJB 3.0接口擴展序列化投擲不能元帥EJB參數
- 21. 帶有遠程以及本地接口的EJB的業務接口模式
- 22. 使用JAXB接口連接EJB-XML
- 23. 爲JSF EJB應用正確的配置使用遠程接口
- 24. EJB作爲接口不被注入
- 25. Maven EJB 3.0 Eclipse應用程序
- 26. 跨應用程序查找EJB失敗
- 27. Struts應用程序中的EJB和Hibernate
- 28. 應用程序客戶端EJB Eclipse Glassfish
- 29. 在EJB/MDB應用程序中的DI
- 30. 用於輔助類使用EJB接口
感謝,並沒有意識到這種變化的。最好還是創建本地接口?如果沒有接口視圖的功能與本地接口視圖相同,本地接口的意義何在? – joe
一旦你有一個遠程接口,如果你想在本地使用你的會話bean,你將需要指定一個本地接口。如果你不會公開你的bean,我認爲你不需要創建一個本地的。 – Jaumzera