启动时Tomcat的“连接被拒绝”错误

我已经在Ubuntu 12.04上手动安装了tomcat,但是现在它抛出了这个错误

alpha@TM:~/apache-tomcat-6.0.35/bin$ st Using CATALINA_BASE: /home/alpha/apache-tomcat-6.0.35 Using CATALINA_HOME: /home/alpha/apache-tomcat-6.0.35 Using CATALINA_TMPDIR: /home/alpha/apache-tomcat-6.0.35/temp Using JRE_HOME: /usr/lib/jvm/java-6-openjdk-i386 Using CLASSPATH: /home/alpha/apache-tomcat-6.0.35/bin/bootstrap.jar usage: java org.apache.catalina.startup.Catalina [ -config {pathname} ] [ -nonaming ] { -help | start | stop } 16 Jul, 2012 6:21:06 PM org.apache.catalina.startup.Catalina stopServer SEVERE: Catalina.stop: java.net.ConnectException: Connection refused at java.net.PlainSocketImpl.socketConnect(Native Method) at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:327) at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:193) at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:180) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:384) at java.net.Socket.connect(Socket.java:546) at java.net.Socket.connect(Socket.java:495) at java.net.Socket.<init>(Socket.java:392) at java.net.Socket.<init>(Socket.java:206) at org.apache.catalina.startup.Catalina.stopServer(Catalina.java:422) 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.stopServer(Bootstrap.java:338) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:416) 

我search了很多StackOverflow,但不能罚款正确的解决scheme,这个问题。 我已经尝试更改conf / server.xml中的tomcats侦听端口和closures端口,但它仍然没有。 任何帮助将不胜感激。

从我所能看到的,tomcat根本就不是开始的。 看起来你的脚本中有一个错误。 事实上,你可以看到,在抛出exception之前,它写道:

 usage: java org.apache.catalina.startup.Catalina [ -config {pathname} ] [ -nonaming ] { -help | start | stop } 

这意味着你的脚本正在用来启动(或停止)tomcat的命令行有问题。

那么,就有例外。 这个例外不是 Tomcat服务器有问题。 这实际上是“停止”命令不能连接到任何Tomcat停止,因为Tomcat没有启动前面的错误。

当Tomcat正确启动时,它监听端口8080(或者任何你configuration它)来服务HTTP请求,而且监听另一个端口(通常是8005,只绑定到本地主机)。 这个端口是“closures端口”。 当你想closuresTomcat的时候,脚本启动另一个小的java程序,连接到8005端口,并发出shutdown命令给正在运行的Tomcat。

这是你看到的“连接被拒绝”exception,没有Tomcat连接,因为Tomcat没有运行。

事实上,如果您从未启动Tomcat时发出tomcat stop,通常会看到相同的exception。

你应该检查你的脚本,find执行启动命令的地方,看看它是什么样子(用echoreplace它,看看它打印什么),并检查它是否与使用说明是一致的。 它应该看起来像这样:

 java -cp [some .jar files here] org.apache.catalina.startup.Catalina -config [path to config files, but it's optional] start