2011-02-05 102 views
6

我在使用Tomcat 7的Eclipse(Helios)中運行java web應用程序。服務器啓動成功(指示持續時間),但是Eclipse的進度條仍在旋轉,表示Tomcat正在啓動。最終達到超時並拋出錯誤。Tomcat在Eclipse中:它在啓動過程中運行但超時

我相信Tomcat很好,因爲我已經使用了它在shell中手動運行的命令。 Tomcat運行正常,我可以在預期的URL上點擊Web應用程序。啓動後,超時之前,我也可以點擊它。

我已經重新安裝Eclipse,我用乾淨的運行它,我刪除/重新創建服務器。沒有任何工作。任何人有任何線索?

回答

1

我已經找到了答案(只是在這裏發帖之後,諷刺的是,似乎是如何找到答案的一個人的自己的問題。)

的答案是,目前正在被另一個進程使用的端口。我應該知道,但升級幾個不同的包將做到這一點。但症狀:

  • Tomcat成功啓動。能夠在超時之前打開應用程序。
  • Eclipse看起來好像無法確定服務器是啓動還是停止。

HTTP當前運行在默認值8080.不幸的是,我的數據存儲在8080(我猜測我不太確定它對端口做了什麼,除了分配給jmx)。我猜測Eclipse無法檢測到Tomcat在8080.

+0

問題出在你身上,答案也在你身上。 ;) – 2011-02-05 08:51:23

+0

準確地說我的問題太...謝謝你的答案! 我有一個Vagrant實例運行映射到8080,但遺憾的是Eclipse在啓動過程中沒有顯示問題,並且它愉快地報告「服務器在xxxxx ms啓動」。 – uncrase 2015-09-04 15:15:59

1

我得到了這個問題,似乎我的tomcat版本是越野車(tomcat 7.0.23) 切換你的tomcat版本到另一個(即tomcat 7.0.14 ) 這個對我有用。

好運

0

這可能發生,如果兩個servlet已經映射到相同的URL請求,Tomcat將啓動罰款,但Eclipse將無法生成正確的web.xml文件,因此不會能夠發佈webApp。 檢查您的servlet映射@WebServlet("\TheURLThatShouldInvokeThisServlet")確保兩個servlet不具有相同的「TheURLThatShouldInvokeThisServlet」。

(把它備案!)

4

我有這個問題,似乎在Eclipse調用應用程序URL啓動後,以確保它正在運行。

代理客戶端(pshione)已經更改了系統代理,因此eclipse無法調用啓動頁面並認爲應用程序尚未啓動!

我刪除了代理,它現在工作正常!

編輯:

這也可以當你開始使用SSL你的Tomcat發生,但SSL證書無效。當你打電話給無效的SSL認證網站時,一些瀏覽器確認你是否想要去一個,但eclipse無法連接到你無效的SSL網站!我建議用正常的http而不是https測試你的網站。

3

Java的某些更新會導致Eclipse的網絡操作出現問題。具體來說,Eclipse嘗試使用IPv6而不是IPv4,有時會失敗。當Eclipse啓動Tomcat時,它所做的最後一個步驟是測試對Tomcat的調試調用。這可能是掛起的部分。幸運的是,修復非常簡單。我們只是告訴Eclipse使用IPv4。

要做到這一點,編輯eclipse.ini文件(在Eclipse目錄中找到),並添加以下就其自己的行文件的末尾:

-Djava.net.preferIPv4Stack=true 

重啓Eclipse,你應該是好的去。

0

我有同樣的問題,這是由於我定義的連接器(我只有一個AJP連接器)。

將HTTP連接器添加到Tomcat的server.xml解決了該問題。

相關問題