我正在使用eclipse
開發和測試spring mvc
應用程序。我在開發過程中經常使用Run as...Run on server
來測試較小的變化。我遇到了一個ClassNotFound
錯誤,其解決方案似乎涉及將幾個罐移入tomcat 8
lib
目錄,以便它們在運行時可用。 (包含jar的類位於eclipse中的應用程序構建路徑中。)將jar移動到tomcat lib
文件夾的問題是在編譯時還需要jar。當我將jar
移動到$CATALINA_HOME/lib
時,出現一個錯誤,指示由於jar
位於我的pom.xml
中而存在重複的瓶子。但如果我從我的pom.xml
中刪除它,eclipse
將不會編譯該應用程序。 如何將一個jar移動到$ CATALINA_HOME/lib並仍然有eclipse編譯我的應用程序?jar在運行時不可用,爲什麼不呢?
我試着設置<scope>runtime</scope>
和<scope>provided</scope>
但這些都不能解決問題。以下是我在我的pom.xml
:
<dependency>
<groupId>javax.mail</groupId>
<artifactId>javax.mail-api</artifactId>
<version>1.5.2</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.activation</groupId>
<artifactId>activation</artifactId>
<version>1.1.1</version>
<scope>provided</scope>
</dependency>
編輯#1:
我也嘗試過移動jar
到tomcat lib
文件夾,然後添加jar
到buildpath
在eclipse
作爲外部jar
這樣我就可以從pom.xml
中刪除依賴關係,並且仍然有eclipse
編譯該應用程序。但是,當我這樣做,eclipse
給我下面的錯誤每次我嘗試Run As..Run on Server
:
Several ports (8080, 8009) required by Tomcat v8.0 Server at localhost are
already in use. The server may already be running in another process, or a
system process may be using the port. To start this server you will need to
stop the other process or change the port number(s).
當然,我去了tomcat bin
文件夾就跑shutdown.sh
,但並沒有阻止新的錯誤。
編輯#2
當我通過點擊紅色按鈕,關閉從eclipse
內tomcat
,eclipse
說的tomcat已經停止。但是,當我再次嘗試restart tomcat
再次執行Run As..Run on Server
時,出現上述EDIT#1
中描述的錯誤。當我完全關閉計算機並重啓時,臨時解決此錯誤。然後,我可以再次執行Run As..Run on Server
並重新創建這種情況。現在只有一個新的錯誤被拋出。我記錄了the new error in a separate posting。但是,我每次嘗試執行連續的Run As..Run on Server
啓動以測試代碼中的小更改時,始終收到來自EDIT#1
的錯誤消息的相同問題。 所以這個當前的問題沒有得到解決,因爲java mail jar
在tomcat lib
文件夾和使用範圍提供需要一個不可接受的重新啓動每次我想從eclipse
內重新啓動應用程序。shutdown.sh
也不起作用。
我們可以看到堆棧跟蹤嗎? –
@AlessandroSantini lemme重啓我的機器,看看我是否可以重現錯誤以獲得堆棧跟蹤。 – CodeMed
知道它的日蝕,我有一種感覺,你的機器重啓可能會解決你的問題。你應該保留你的maven _provided_條目 – Angad