簡體   English   中英

從EAR項目中的War項目中的EJB項目中的訪問類?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM