我想在使用Spring Rest的基於Spring的多模塊項目中開發一個RESTful API。爲此,我有一個Web應用程序模塊和一些其他業務/數據層模塊。例如,這將是我的簡化項目結構:Spring Rest Controllers:部署到Tomcat
myProject
-- webapp (war-packaged)
-- business (jar-packaged)
-- data (jar-packaged)
業務模塊依賴數據模塊上也是如此業務模塊上的web應用。 Webapp成功導入每個模塊的應用程序上下文。現在我希望能夠使用一些業務模塊類,根據從數據庫檢索到的某些數據進行某種計算,以提供某種資源。我看過的所有例子都非常簡單,而且這種多模塊方法根本沒有涉及。
問題是什麼?就我而言,Tomcat以特定順序加載類。具體來說,它首先加載WEB-INF /類,然後才加載WEB-INF/lib(所有webapp依賴項都放置在這種情況下的業務模塊)。所以,我的問題出現了。 我應該在哪裏放置我的控制器類?如果我將它們放在webapp模塊中,我將無法自動裝載任何業務模塊bean,因爲當我部署webapp war(至少這是我所經歷的行爲)時,Tomcat將拋出ClassNotFoundException。
答案可能很簡單,但對於Spring及其世界來說我相當陌生!
謝謝大家提前。
我遵循你的方法@Atrawraw17,但是如果我嘗試在控制器類中導入任何類的業務模塊,那麼當我部署戰爭時,Tomcat會引發前面提到的錯誤。這些導入在我的IDE中不顯示任何錯誤。我已經檢查了依賴jar的內容,並且類在那裏,所以我找到的唯一解釋是在Tomcat環境中的類加載順序,例如,在這裏:http://avricot.com/blog/index.php? post/2011/02/18/tomcat-class-loader%2C-priority-order,首先加載第一個WEB-INF/classes(例如:controllers),然後纔是WEB-INF/lib。 – jarandaf 2013-05-07 21:49:29
您確定業務模塊jar位於WEB-INF/lib目錄中嗎?你確定你引用的業務模塊的類是在業務模塊jar嗎? – Athrawn17 2013-05-08 15:19:56