2011-11-07 45 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系列中的其他端口。希望它有效。

相关问题