2012-03-30 172 views
0

我試圖運行Java web應用程序建立實例,但它在構建中部與此錯誤停止:java.net.BindException:地址已在使用:8080

java.net.BindException:地址已在使用:8080

它顯然是試圖綁定到8080端口,但另一個進程已經這樣做,不會分享。

因此,我檢查了一下使用8080(netstat -anp | grep 8080)的過程。顯然,jsvc.exec進程正在偵聽我的8080端口。在檢查(ps -fp)後,我發現這是Tomcat(boostrap.jar)。

因此,要查看構建是否至少完成,我殺死了這個過程。是啊! Webapp構建完全安裝。但是,當我瀏覽器瀏覽本地主機:8080它說服務沒有運行 - 因爲我殺死了Tomcat!我甚至嘗試過localhost:8080/manager/list。仍然說服務沒有運行。

因此,我重新啓動Tomcat,檢查本地主機:8080和Tomcat備份。檢查localhost:8080/manager/list,但沒有看到我剛剛構建的Webapp實例。

我不在這裏!如果我運行tomcat,我的webapp不會生成(不能共享8080)。如果我殺死tomcat來完成構建,webapp顯然不能運行,因爲Tomcat已經死了。

請幫幫我。在遠程服務器上的LAMP環境中運行Tomcat 5.5。注:我正在運行一個預先構建的Web應用程序構建應用程序(戰爭),我不能進行更改。

+1

你如何建立你的web應用程序?使用Maven?它如何在8080端口啓動你的應用程序?這樣做是完全有效的,我只是想抓住缺失的部分。 – 2012-03-30 17:39:04

回答

1

在構建?構建過程通常不需要打開端口。問題是兩個程序試圖使用相同的端口。在沒有解決底層問題的情況下,立即解決方法是更改​​Tomcat運行的端口。要更改Tomcat運行的端口,請編輯install_dir/conf/server.xml,並將Connector元素的端口屬性從8080更改爲8081.

+0

感謝freeone3000閱讀我的問題。你的建議是有道理的,所以我試了一下。 1)我將server.xml文件中的Connector元素更改爲8081. 2)重新啓動的服務器 3)運行netstat -anp | grep 8081,確定enuff tomcat正在運行(jsvc.exec) 4)再次運行構建。它完成了。 5)當我去localhost:8080我仍然得到HTTP錯誤:503問題訪問/。原因:服務不可用 6)當我嘗試使用localhost:8081時,它無法解析(我期待看到標準的Apache Tomcat頁面)。 不知道在這裏說什麼,除了我仍然困惑。 – 2012-03-30 19:24:27

+0

這裏額外注意。當我終止構建實例(通過在終端控制檯上返回)時,503錯誤在localhost:8080處消失,並且頁面不再解析。 – 2012-03-30 19:26:59

+0

好的。因此,您的構建實例正在端口8080上運行Web服務器。出於某種原因。檢查您正在構建的WAR文檔,說明爲什麼需要這樣做,以及如何訪問它。至於tomcat實例,如果您無法訪問http:// localhost:8081 /,那麼在該端口上沒有本地運行的Web服務器。如果您有400或500類錯誤,有時會在網絡瀏覽器中報告爲「無法連接」錯誤,那麼您訪問錯誤的URI並需要使用通常用於訪問本地應用程序的URI。 – freeone3000 2012-04-04 16:24:28

0

如果這是您第一次運行Confluence或者您最近添加了應用程序或製作對系統的更改,探討什麼是運行在端口8080

如果鋪滿沒有正確關閉,你可以重啓機器或殺掉進程: 在Windows上:

  1. 命中Ctrl-alt-delete看看打開程序。尋找{{java.exe}}。

  2. 從命令窗口運行{{netstat -an}}。檢查哪些端口正在使用中。您可以確定以這種方式運行的應用程序,然後從任務管理器中關閉它。

+0

謝謝。我發現預構建的Web應用程序(戰爭)帶有一個分配給端口8080的內部客戶端服務器。因此與tomcat(8080)相沖突。所以我把tomcat切換到8081.問題解決了。謝謝 – 2012-06-01 15:07:16

相關問題