我正面临一些有关 tomcat 启动和关闭的问题。
我在用
我使用命令启动 tomcat:
$./catalina.sh jpda start
然后我尝试使用命令停止它:
$./catalina.sh stop
并收到以下消息:
SEVERE: Catalina.stop:
java.net.ConnectException: Connection refused
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:351)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:213)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:200)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
at java.net.Socket.connect(Socket.java:529)
at java.net.Socket.connect(Socket.java:478)
at java.net.Socket.<init>(Socket.java:375)
at java.net.Socket.<init>(Socket.java:189)
at org.apache.catalina.startup.Catalina.stopServer(Catalina.java:422)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.catalina.startup.Bootstrap.stopServer(Bootstrap.java:338)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:416)
我也尝试使用命令停止它:
$./catalina.sh stop -force
但我收到了消息:
Kill failed: $CATALINA_PID not set
然后我再次尝试使用命令启动 tomcat:
$./catalina.sh jpda start
在/logs 文件夹中,只生成 catalina.out 并带有以下错误消息:
ERROR: transport error 202: bind failed: Address already in use
ERROR: JDWP Transport dt_socket failed to initialize, TRANSPORT_INIT(510)
JDWP exit error AGENT_ERROR_TRANSPORT_INIT(197): No transports initialized [../../../src/share/back/debugInit.c:690]
FATAL ERROR in native method: JDWP No transports initialized, jvmtiError=AGENT_ERROR_TRANSPORT_INIT(197)
正如错误“地址已在使用”中所示,我确认没有其他应用程序配置为在端口 8080 上运行。
每次当我杀死进程 id 并重新启动它时,启动工作正常。这需要我使用“KILL”命令手动终止进程,当我需要停止 tomcat 服务器时。
我在其他机器上也遇到了同样的行为,其中设置了与上述相同的环境。
任何人都可以让我知道是什么导致了这个问题以及如何解决这个问题?
谢谢,
吉涅什
请您参考如下方法:
不要使用/etc/bash.bashrc
把它放在你的 catalina.sh 上
后:
if [ -r "$CATALINA_BASE"/bin/setenv.sh ]; then
. "$CATALINA_BASE"/bin/setenv.sh
elif [ -r "$CATALINA_HOME"/bin/setenv.sh ]; then
. "$CATALINA_HOME"/bin/setenv.sh
fi
把这个:
export CATALINA_PID="$CATALINA_HOME/catalina_pid.txt"
现在当您使用 catalina.sh stop -force 时,您的 tomcat 将被杀死