我創建了一個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. EJB 3.0業務接口
- 3. 企業應用程序開發-RMI和EJB
- 4. EJB在企業應用程序中未被識別
- 5. Glassfish的EJB遠程業務接口
- 6. iPhone企業應用程序分配 - 需要Internet連接?
- 7. 新手在企業Java Beans(EJB)
- 8. 訪問企業Bean通過與@EJB
- 9. 更改遠程EJB接口中的本地EJB接口 - 結果發送到客戶端應用程序
- 10. 需要EJB幫助
- 11. 無狀態EJB拋出企業應用程序客戶端中的NullPointerException
- 12. EJB + Spring + Hibernate應用程序
- 13. EJB應用程序託管
- 14. 運行EJB應用程序
- 15. Swing應用程序與EJB
- 16. 爲什麼我們在EJB 2.0中需要EJB的EJBLocalObject和EJBLocalHome接口?
- 17. 遠程接口視圖ejb仍然可以使用@EJB
- 18. 從另一個ejb模塊調用ejb遠程接口
- 19. 的Java EJB接口
- 20. EJB + Web應用程序(JBoss 5)需要jndi.properties文件嗎?
- 21. Spring EJB遠程接口調用
- 22. EJB調用池從客戶端應用程序EJB
- 23. 什麼類需要'使用'企業應用程序塊的DLL?
- 24. 遠程業務接口的ejb ref分辨率錯誤 - Glassfish
- 25. 要使Grails應用程序很好地擴展,您需要使用EJB嗎?
- 26. 企業iOS應用程序
- 27. EJB遠程應用程序 - 客戶端
- 28. EJB接口JNDI查找
- 29. 生成EJB 2.x接口
- 30. 本地接口EJB的JNDI
感謝,並沒有意識到這種變化的。最好還是創建本地接口?如果沒有接口視圖的功能與本地接口視圖相同,本地接口的意義何在? – joe
一旦你有一個遠程接口,如果你想在本地使用你的會話bean,你將需要指定一個本地接口。如果你不會公開你的bean,我認爲你不需要創建一個本地的。 – Jaumzera