2011-11-07 42 views
26

的設置是:Tomcat啓動,8080個地址已在使用

  • 亞馬遜EC2
  • 的Tomcat(與安全的轉發8443)
  • Apache 2.2的

我運行關機。噓,我沒有得到任何錯誤。

,但是當我嘗試RUNT的startup.sh我得到這個錯誤:

07-Nov-2011 17:40:40 org.apache.catalina.core.AprLifecycleListener init 
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/i386/client:/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/i386:/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/../lib/i386:/usr/java/packages/lib/i386:/lib:/usr/lib 
07-Nov-2011 17:40:41 org.apache.coyote.http11.Http11Protocol init 
INFO: Initializing Coyote HTTP/1.1 on http-8080 
07-Nov-2011 17:40:41 org.apache.coyote.http11.Http11Protocol init 
SEVERE: Error initializing endpoint 
java.net.BindException: Address already in use <null>:8080 
     at org.apache.tomcat.util.net.JIoEndpoint.init(JIoEndpoint.java:549) 
     at org.apache.coyote.http11.Http11Protocol.init(Http11Protocol.java:176) 
     at org.apache.catalina.connector.Connector.initialize(Connector.java:1022) 
     at org.apache.catalina.core.StandardService.initialize(StandardService.java:703) 
     at org.apache.catalina.core.StandardServer.initialize(StandardServer.java:838) 
     at org.apache.catalina.startup.Catalina.load(Catalina.java:538) 
     at org.apache.catalina.startup.Catalina.load(Catalina.java:562) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
     at java.lang.reflect.Method.invoke(Method.java:616) 
     at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:261) 
     at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413) 
Caused by: java.net.BindException: Address already in use 
     at java.net.PlainSocketImpl.socketBind(Native Method) 
     at java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:336) 
     at java.net.ServerSocket.bind(ServerSocket.java:336) 
     at java.net.ServerSocket.<init>(ServerSocket.java:202) 
     at java.net.ServerSocket.<init>(ServerSocket.java:158) 
     at org.apache.tomcat.util.net.DefaultServerSocketFactory.createSocket(DefaultServerSocketFactory.java:50) 
     at org.apache.tomcat.util.net.JIoEndpoint.init(JIoEndpoint.java:538) 
     ... 12 more 
07-Nov-2011 17:40:41 org.apache.catalina.core.StandardService initialize 
SEVERE: Failed to initialize connector [Connector[HTTP/1.1-8080]] 
LifecycleException: Protocol handler initialization failed: java.net.BindException: Address already in use <null>:8080 
     at org.apache.catalina.connector.Connector.initialize(Connector.java:1024) 
     at org.apache.catalina.core.StandardService.initialize(StandardService.java:703) 
     at org.apache.catalina.core.StandardServer.initialize(StandardServer.java:838) 
     at org.apache.catalina.startup.Catalina.load(Catalina.java:538) 
     at org.apache.catalina.startup.Catalina.load(Catalina.java:562) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
     at java.lang.reflect.Method.invoke(Method.java:616) 
     at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:261) 
     at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413) 
07-Nov-2011 17:40:41 org.apache.coyote.http11.Http11Protocol init 
INFO: Initializing Coyote HTTP/1.1 on http-8443 
07-Nov-2011 17:40:41 org.apache.catalina.startup.Catalina load 
INFO: Initialization processed in 615 ms 
07-Nov-2011 17:40:41 org.apache.catalina.core.StandardService start 
INFO: Starting service Catalina 
07-Nov-2011 17:40:41 org.apache.catalina.core.StandardEngine start 

INFO: Starting service Catalina 
07-Nov-2011 17:40:41 org.apache.catalina.core.StandardEngine start 
INFO: Starting Servlet Engine: Apache Tomcat/6.0.33 
07-Nov-2011 17:40:41 org.apache.catalina.startup.HostConfig deployDescriptor 
INFO: Deploying configuration descriptor host-manager.xml 
07-Nov-2011 17:40:41 org.apache.catalina.startup.HostConfig deployDescriptor 
INFO: Deploying configuration descriptor manager.xml 
07-Nov-2011 17:40:41 org.apache.catalina.startup.HostConfig deployWAR 
INFO: Deploying web application archive test.war 
log4j:WARN No appenders could be found for logger (StackTrace). 
log4j:WARN Please initialize the log4j system properly. 
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info. 
log4j:ERROR Error initializing log4j: grails/plugins/springsecurity/SecurityConfigType : Unsupported major.minor version 51.0 (unable to load class grails.plugins.springsecurity.SecurityConfigType) 
java.lang.UnsupportedClassVersionError: grails/plugins/springsecurity/SecurityConfigType : Unsupported major.minor version 51.0 (unable to load class grails.plugins.springsecurity.SecurityConfigType) 
     at java.lang.Class.forName0(Native Method) 
     at java.lang.Class.forName(Class.java:186) 
     at Config.class$(Config.groovy) 
     at Config.$get$$class$grails$plugins$springsecurity$SecurityConfigType(Config.groovy) 
     at Config.run(Config.groovy:116) 
07-Nov-2011 17:40:43 org.apache.catalina.core.StandardContext start 
SEVERE: Error listenerStart 
07-Nov-2011 17:40:43 org.apache.catalina.core.StandardContext start 
SEVERE: Context [/test] startup failed due to previous errors 
07-Nov-2011 17:40:43 org.apache.catalina.loader.WebappClassLoader clearReferencesJdbc 
SEVERE: The web application [/test] registered the JDBC driver [com.mysql.jdbc.Driver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered. 
07-Nov-2011 17:40:43 org.apache.catalina.startup.HostConfig deployWAR 
INFO: Deploying web application archive browser.war 
07-Nov-2011 17:40:43 org.apache.catalina.startup.HostConfig deployDirectory 
INFO: Deploying web application directory examples 
07-Nov-2011 17:40:43 org.apache.catalina.startup.HostConfig deployDirectory 
INFO: Deploying web application directory ROOT 
07-Nov-2011 17:40:43 org.apache.catalina.startup.HostConfig deployDirectory 
INFO: Deploying web application directory docs 
07-Nov-2011 17:40:43 org.apache.coyote.http11.Http11Protocol start 
INFO: Starting Coyote HTTP/1.1 on http-8080 
07-Nov-2011 17:40:43 org.apache.coyote.http11.Http11Protocol start 
SEVERE: Error starting endpoint 
java.net.BindException: Address already in use <null>:8080 
     at org.apache.tomcat.util.net.JIoEndpoint.init(JIoEndpoint.java:549) 
     at org.apache.tomcat.util.net.JIoEndpoint.start(JIoEndpoint.java:565) 
     at org.apache.coyote.http11.Http11Protocol.start(Http11Protocol.java:203) 
     at org.apache.catalina.connector.Connector.start(Connector.java:1095) 
     at org.apache.catalina.core.StandardService.start(StandardService.java:540) 
     at org.apache.catalina.core.StandardServer.start(StandardServer.java:754) 
     at org.apache.catalina.startup.Catalina.start(Catalina.java:595) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
     at java.lang.reflect.Method.invoke(Method.java:616) 

at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289) 
     at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414) 
Caused by: java.net.BindException: Address already in use 
     at java.net.PlainSocketImpl.socketBind(Native Method) 
     at java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:336) 
     at java.net.ServerSocket.bind(ServerSocket.java:336) 
     at java.net.ServerSocket.<init>(ServerSocket.java:202) 
     at java.net.ServerSocket.<init>(ServerSocket.java:158) 
     at org.apache.tomcat.util.net.DefaultServerSocketFactory.createSocket(DefaultServerSocketFactory.java:50) 
     at org.apache.tomcat.util.net.JIoEndpoint.init(JIoEndpoint.java:538) 
     ... 12 more 
07-Nov-2011 17:40:43 org.apache.catalina.core.StandardService start 
SEVERE: Failed to start connector [Connector[HTTP/1.1-8080]] 
LifecycleException: service.getName(): "Catalina"; Protocol handler start failed: java.net.BindException: Address already in use <null>:8080 
     at org.apache.catalina.connector.Connector.start(Connector.java:1102) 
     at org.apache.catalina.core.StandardService.start(StandardService.java:540) 
     at org.apache.catalina.core.StandardServer.start(StandardServer.java:754) 
     at org.apache.catalina.startup.Catalina.start(Catalina.java:595) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
     at java.lang.reflect.Method.invoke(Method.java:616) 
     at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289) 
     at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414) 
07-Nov-2011 17:40:43 org.apache.coyote.http11.Http11Protocol start 
INFO: Starting Coyote HTTP/1.1 on http-8443 
07-Nov-2011 17:40:43 org.apache.jk.common.ChannelSocket init 
INFO: JK: ajp13 listening on /0.0.0.0:8009 
07-Nov-2011 17:40:43 org.apache.jk.server.JkMain start 
INFO: Jk running ID=0 time=0/120 config=null 
07-Nov-2011 17:40:43 org.apache.catalina.startup.Catalina start 
INFO: Server startup in 2286 ms 
07-Nov-2011 17:42:14 org.apache.coyote.http11.Http11Protocol pause 
INFO: Pausing Coyote HTTP/1.1 on http-8080 
07-Nov-2011 17:42:14 org.apache.coyote.http11.Http11Protocol pause 
INFO: Pausing Coyote HTTP/1.1 on http-8080 
07-Nov-2011 17:42:14 org.apache.coyote.http11.Http11Protocol pause 
INFO: Pausing Coyote HTTP/1.1 on http-8443 
07-Nov-2011 17:42:15 org.apache.catalina.core.StandardService stop 
INFO: Stopping service Catalina 
07-Nov-2011 17:42:15 org.apache.coyote.http11.Http11Protocol destroy 
INFO: Stopping Coyote HTTP/1.1 on http-8080 
07-Nov-2011 17:42:15 org.apache.coyote.http11.Http11Protocol destroy 
INFO: Stopping Coyote HTTP/1.1 on http-8080 
07-Nov-2011 17:42:15 org.apache.coyote.http11.Http11Protocol destroy 
INFO: Stopping Coyote HTTP/1.1 on http-8443 

我試着命令,如netstat -aon | grep 8080我已經試過ps -efl | grep java和殺害使用kill <pid> 9​​等這一進程。 ..

這是netstat -aon

Active Internet connections (servers and established) 
Proto Recv-Q Send-Q Local Address    Foreign Address    State  Timer 
tcp  0  0 127.0.0.1:25    0.0.0.0:*     LISTEN  off (0.00/0/0) 
tcp  0  0 0.0.0.0:22     0.0.0.0:*     LISTEN  off (0.00/0/0) 
tcp  0  0 10.226.122.156:22   109.58.56.15:49215   ESTABLISHED keepalive (5354.40/0/0) 
tcp  0  0 :::80      :::*      LISTEN  off (0.00/0/0) 
tcp  0  0 :::22      :::*      LISTEN  off (0.00/0/0) 
udp  0  0 0.0.0.0:68     0.0.0.0:*        off (0.00/0/0) 
udp  0  0 10.226.122.156:123   0.0.0.0:*        off (0.00/0/0) 
udp  0  0 127.0.0.1:123    0.0.0.0:*        off (0.00/0/0) 
udp  0  0 0.0.0.0:123     0.0.0.0:*        off (0.00/0/0) 
udp  0  0 ::1:123      :::*         off (0.00/0/0) 
udp  0  0 fe80::1031:3cff:fe0:123  :::*         off (0.00/0/0) 
udp  0  0 :::123      :::*         off (0.00/0/0) 
Active UNIX domain sockets (servers and established) 
Proto RefCnt Flags  Type  State   I-Node Path 
unix 2  [ ACC ]  STREAM  LISTENING  2337 @/tmp/fam-root- 
unix 2  [ ACC ]  STREAM  LISTENING  409 @/com/ubuntu/upstart 
unix 2  [ ]   DGRAM     644 @/org/kernel/udev/udevd 
unix 8  [ ]   DGRAM     1513 /dev/log 
unix 3  [ ]   STREAM  CONNECTED  38302 
unix 3  [ ]   STREAM  CONNECTED  38301 
unix 2  [ ]   DGRAM     38297 
unix 2  [ ]   DGRAM     22149 
unix 3  [ ]   STREAM  CONNECTED  2340 @/tmp/fam-root- 
unix 3  [ ]   STREAM  CONNECTED  2339 
unix 2  [ ]   DGRAM     1998 
unix 2  [ ]   DGRAM     1918 
unix 2  [ ]   DGRAM     1895 
unix 2  [ ]   DGRAM     1819 
unix 3  [ ]   DGRAM     648 
unix 3  [ ]   DGRAM     647 

任何想法或指針?

回答

9

的端口號在$ TOMCAT_HOME配置/ conf目錄/ server.xml中

如果端口8080是在使用中,在server.xml文件中改變它。我的是這樣server.xml中

<Connector port="8085" protocol="HTTP/1.1" 
       connectionTimeout="20000" 
       redirectPort="8443" /> 
+0

試圖將其更改爲8181 8383 ...沒有效果!這看起來像一個工作,我想要做的是無論如何運行在8080上。問題甚至沒有通過重新啓動解決! – marko

15

切勿殺死信號-9的過程,因爲這種類型的查殺過程中留下存在於系統中,只能在服務器重新啓動後去除它的資源。只有在極端緊急情況下才使用kill -9。最好使用殺-15,因爲它可能需要一些時間來清理資源,但你總是拿到整套資源的適當的沖洗,該進程佔用。所以最有可能的是,tomcat不能工作,因爲它留下了內存中的一些資源。因此,請執行重新啓動或嘗試找到以下內容:

  • 通過lsof命令並grep它與tomcat。它會告訴你已經tomcat的與之相關聯的

lsof | grep tomcat

  • 搜索文件系統上的任何PID鎖定文件的,被Tomcat留下什麼東西。
  • 也儘量問題:

lsof -i TCP | grep 8080

+0

我試過重新啓動,問題沒有解決。我讀到了這個問題,就像你說的那樣 - 存儲器中存在的資源。但他們如何倖存一個rebooT? :S – marko

+0

嘗試運行ps -aux | grep java,並查找啓動時運行的任何java進程。 – Farhan

+0

感謝您的建議,我試過ps -efl | grep java(和其他類似的組合)註釋工作。最終我終止了我的亞馬遜實例並創建了一個新的... – marko

1

有時servlet的必須做的工作的大量關閉,並作爲一個結果,tomcat的可能需要一些時間來關閉爲好。如果您重新啓動服務器之前等待一個短一點,你可能會看到問題消失。如果不是,那麼很可能Web應用程序可能不響應於來自JVM終止信號,在這種情況下的Tomcat可能無法正確關閉。

長話短說,儘量增加睡眠您重新啓動腳本,或者調用重新開始之前簡單地等待一個短位。

9

只是運行一個lsof的可能是不夠的。我建議這個命令:

sudo lsof -i :8080 

然後你可以殺死任何持有該端口的進程(最有可能是另一個tomcat實例)。

24

我也有同樣的問題。嘗試了這個線程中提出的所有選項。但沒有幫助。然後,只是沒跑:

ps -awwef | grep tomcat 

,並發現了一些陳舊的進程在運行。我使用(-15而不是-9)殺死它(012而不是-9)

sudo kill -15 <tomcat pid from previous command> 

而且有點!有效。重新啓動tomcat沒有任何問題。

+0

這對我有幫助,,,謝謝 – ashu17188

1

問題是tomcat可能沒有正確關閉。嘗試在重新啓動腳本中添加睡眠,或者在再次啓動tomcat之前等待一小段薄荷。

+0

當問題發佈時試過這樣的方式,我得到了同樣的問題 – marko

4

只是爲了記錄:我得到了這個錯誤(作爲新手),因爲我在啓動Tomcat之前啓動了Apache。

如果我停止Apache,然後啓動Tomcat,然後啓動Apache,錯誤消失。

2

進入netstat -aon後,找到8080端口的PID。然後轉到任務管理器並在過程選項卡中找到PID的圖像名稱。右鍵單擊圖像名稱並單擊結束進程。現在,如果你啓動服務器,它將工作。

0

ps -awwef | grep tomcat

爲我工作

發現一些過時的進程正在運行。我殺了它使用(-15而不是-9)

0

最好的解決辦法是停止使用下面的命令運行Tomcat實例:

殺$(PS -aef | grep的的java | grep的Apache的Tomcat的7.0。 47 | awk'{print $ 2}')

用您的tomcat版本更改7.0.47。它工作正常,端口號即8080即將發佈。

2

我也遇到了這個問題,但在我的情況下,我已經更新我的應用程序在我的服務器從我的本地源應用程序。我用上面所示的不同方法搜索運行tomcat實例,並殺死所有這些實例,然後運行幾次,但沒用。

tomcat未正確關閉或啓動的原因是應用程序源的JDK版本:我已經使用JDK 1.8構建了它,但在我的服務器中有1.7。在使用JDK 1.7重建我的應用程序之後,我在本地和服務器機器上都可以使用它。希望這些信息也能幫助像我這樣的人。

0

我正面臨類似的問題,發現8080端口被用於其他應用程序。在窗口上使用netstat commnad並查看所有正在使用的端口。

更改server.xml文件中的連接器端口。你可以在你的tomcat安裝目錄下的conf文件夾中找到這個文件。打開這個文件,我的樣子如下:

<Connector port="8080" protocol="HTTP/1.1" 
       connectionTimeout="20000" 
       redirectPort="8443" /> 

將端口值更改爲80系列中的其他端口。希望它有效。

相關問題