[英]Access class in EJB project from War project in EAR project?
我正在基於MDB和支持這些MDB的類創建一個項目。 我還需要使用ServletContextListener與MDB Universe交互(詳細信息如下),這意味着我需要一個WAR項目。
問題:ServletContextListener如何訪問EJB項目中的類?
項目組織(標准Eclipse EAR項目):
EAR Project中有一些jars,EJB Project中有一些MDB,而MDB WAR Project使用的許多其他類都有ServletContextListener。
我為什么要這樣做? 我需要在項目啟動時啟動線程。 該線程需要訪問MDB也使用的一堆類。
注意:我知道我可以將這些通用類放入EAR項目的jar中。 如果有一種方法可以使單個蝕“ Debug As”->“ On Server”出現,那將是一個很好的解決方案。 無論提供哪種解決方案,都需要在服務器上支持該調試,並逐步調試所有類。
注2:我可以告訴Eclipse WAR項目依賴於EJB項目,該項目刪除了Eclipse錯誤標志,但是eclipse顯示了一個警告,表明該依賴項在已部署的項目中將不存在,這意味着從WAR訪問的類將失敗在運行時實例化。
通過在Java EE服務器上進行“標准”部署(意味着:使用默認的類加載器策略),WAR類可以“看到”封閉的EAR中的所有內容,並且EAR類具有優先權。
我可以告訴Eclipse WAR項目依賴於EJB項目
你不是這樣做嗎? 這是EAR項目,需要在項目的“屬性->部署程序集”部分中包含您的WAR項目。
想到的另一種可能性是,您可能正在嘗試在不支持EAR的非Java EE服務器(例如Tomcat)上進行部署。 這可能就是為什么Eclipse表示已部署項目中不存在依賴項的原因。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.