Java 重新启动时让tomcat启动时出现问题

Java 重新启动时让tomcat启动时出现问题,java,tomcat,init.d,Java,Tomcat,Init.d,我很难让tomcat启动 我按照以下说明运行tomcat/apache2: http://www.mogilowski.net/?p=121 …但tomcat无法在重新启动时启动。以下是日志中的消息: Nov 30, 2009 6:59:53 PM org.apache.catalina.startup.Catalina start INFO: Server startup in 13009 ms Nov 30, 2009 6:59:53 PM org.apache.catalina.core

我很难让tomcat启动

我按照以下说明运行tomcat/apache2:

http://www.mogilowski.net/?p=121
…但tomcat无法在重新启动时启动。以下是日志中的消息:

Nov 30, 2009 6:59:53 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 13009 ms
Nov 30, 2009 6:59:53 PM org.apache.catalina.core.StandardServer await
SEVERE: StandardServer.await: create[8005]:
java.net.BindException: Address already in use
        at java.net.PlainSocketImpl.socketBind(Native Method)
        at java.net.PlainSocketImpl.bind(PlainSocketImpl.java:359)
        at java.net.ServerSocket.bind(ServerSocket.java:319)
        at java.net.ServerSocket.<init>(ServerSocket.java:185)
        at org.apache.catalina.core.StandardServer.await(StandardServer.java:373)
        at org.apache.catalina.startup.Catalina.await(Catalina.java:647)        at org.apache.catalina.startup.Catalina.start(Catalina.java:607)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:2
5)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
Nov 30, 2009 6:59:53 PM org.apache.coyote.http11.Http11Pro
然后执行一个netstat并终止具有8080端口的进程,然后执行

/etc/init.d/tomcat start
尝试删除init.dtomcat脚本,启动系统,运行netstat-napa,查看是否有人拥有8080端口,或8000到8009端口,但没有人拥有。一个“远程登录”到这个端口在一个新的启动给我

root@domU-12-31-39-00-A1-C4:/usr/local/tomcat/logs# telnet localhost 8005
Trying 127.0.0.1...
telnet: Unable to connect to remote host: Connection refused
…但是如果我尝试手动或通过init.d脚本启动tomcat,它第一次就会失败,抱怨“地址已经在使用”

有什么想法吗

它说[8005]已经在使用,但是netstat-napa显示没有人拥有该端口

嗯,
没有人
可能正在运行另一个web服务器


但是说真的,你用来启动tomcat的init脚本的内容是什么,关于进程的所有者,
netstat-tnlpe | grep$yourport
有没有可能运行另一个tomcat实例?例如,如果在系统引导时有一个Tomcat启动脚本在您不知情的情况下运行,那么您收到此错误是有意义的。

如果您在上一次关机完成之前或在未清除的关机之后尝试重新启动,您可以从Tomcat收到此类错误-例如,如果您有一个webapp,它启动一些手动管理的线程并让它们挂起,然后调用tomcat关闭脚本,tomcat服务将停止在端口上响应,但进程不会停止


看起来该页面上的apache脚本调用tomcat restart(即shutdown,startup),然后您还配置了tomcat服务,因此如果apache脚本加载第一个tomcat,则tomcat已运行时将调用第一个tomcat start,如果tomcat是第一个,则tomcat已运行时将调用shutdown/startup

除了其他人的解释外:
ps-ux
将向您显示tomcat(与启动它的用户一起执行),以及
kill-pid
进程(pid是进程id)

常见错误是在
server.xml
配置文件中使用相同的关机和连接器端口

这些端口应该不同,下面是正确的示例:

<Server port="8005" shutdown="SHUTDOWN">
    <Connector port="8983" protocol="HTTP/1.1"


嗯,当机器重新启动时,它永远不会正常启动,所以我不认为它是在不干净的关机之后。是Apache start和Tomcat start都试图启动Tomcat吗?您是否同时安装了Apache和Tomcat?我在想,在某个地方,有什么东西试图启动Tomcat两次。但是,Tomcat不是正在运行吗?仅仅第二个实例的尝试就会失败吗?在我的情况下——在干净地启动机器之后——Tomcat不会启动。有意思的是,谷歌[
netcat-tnlpe
]是一个很好的短语,可以显示所有内容农场网站!
<Server port="8005" shutdown="SHUTDOWN">
    <Connector port="8983" protocol="HTTP/1.1"