2014-02-18 137 views
7

當我使用外部tomcat時,一切都很好。但我需要在內部的eclipse tomcat服務器上部署我的項目,以便能夠使用DCEVM類的熱插拔。 當我嘗試從eclipse中啓動tomcat服務器時,它說它無法找到我在我的spring安全配置文件中提到的服務類中的一個作爲bean。 我也嘗試添加項目到tomcat類路徑,但它並沒有解決我的問題。無法將我的spring web項目部署到eclipse內部tomcat服務器上。(在tomcat啓動時發生java.lang.ClassNotFoundException)

UPDATE

我發現了這個問題,是因爲當我部署我的web項目到Eclipse Tomcat服務器,沒有任何的.class複製到:

C:\Users\Meysam\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\villapweb\WEB-INF\classes 
其實

,這個文件夾包含了我src/java/main包結構,但沒有.class被複制。

lib文件夾中是好的,雖然(例如,在路徑Maven和其他的東西拷貝所有依賴它應該)

我覺得可能是什麼問題M2E-WTP插件。我不知道!

我正在使用eclipse 4.3順便說一句。

解決

我解決以下步驟此問題:

  1. 在Eclipse項目中右鍵點擊>屬性>項目構面在右側面板中選擇運行時間
  2. ,並選擇目標服務器。應用並確定。
  3. 在服務器模塊列表中右鍵單擊項目模塊上,然後單擊清潔模塊的工作目錄
  4. 在服務器上單擊鼠標右鍵本身可以清除服務器和Tomcat的工作目錄陸續
  5. 如果沒有工作,請嘗試項目>清理,並在項目菜單項下切換「自動生成」選項。

就是這樣。 tomcat現在將所有的.class文件複製到目標服務器,並且在tomcat啓動時看不到ClassNotFound異常。

回答

8

[複製回答節]

我解決以下步驟此問題:

  1. 在Eclipse項目中右鍵點擊>屬性>項目構面在右側面板中選擇運行時間
  2. 和選擇您的目標服務器。申請 並確定。
  3. 在服務器模塊列表
  4. 右擊項目模塊和 點擊清理模塊的工作目錄中右鍵單擊服務器本身 上,你可以清除服務器和Tomcat的工作目錄中的一個 另一
  5. 如果沒經過't工作,嘗試項目>清潔,也可以切換 「自動構建」項目下的選項

那就是它。 tomcat現在將所有的.class文件複製到目標服務器,並且在tomcat啓動時看不到ClassNotFound異常。

+0

謝謝!這對我有效。不過,我很好奇,如果有人知道爲什麼一個項目默認不會有這個配置。我已經使用Eclipse十多年了,這是我第一次聽說過「Project Facets」配置頁面。這是我第一次使用Spring的Eclipse版本,所以也許這就是我遇到這個問題的原因。 – Brel

+0

您提到了「服務器模塊列表和項目模塊」。你能告訴我它在哪裏嗎? – greencheese

1

我已經按照答案中的步驟,但它仍然不適用於我,所以,除了執行這些步驟一次,我發現在做一個clean install後對目標進行刷新會自動觸發「重新發布「服務器的狀態,所以當服務器被執行時,編譯後的類的所有改變(新的類和對現有的類的改變)將在服務器啓動時被複制到wtpwebapps中。

0

我在將Web Dynamic項目轉換爲Maven項目時遇到同樣的問題。

我在屬性 - >部署程序集 - >右側面板中發現錯誤。 有source=src folderdeploy path=WEB-INF/classes。 Eclipse無法找到類。

更改爲source=target/classes

0

我有幾乎相同的問題 - 我的一個項目沒有進入部署區域(它的罐子)。我做的是1)從tomcat刪除應用程序2)清潔tomcat工作目錄3)最重要的:項目 - 清潔 - 全部。然後我再次添加應用程序,並...問題解決

相關問題