Skip to main content
 首页 » 编程设计

tomcat6之在ubuntu 10.04上遇到tomcat启动和关闭的一些问题

2024年12月31日10tuyile006

我正面临一些有关 tomcat 启动和关闭的问题。

我在用

  • Tomcat v.6.0.32(使用从 Apache 网站下载的解压包,而不是 Ubuntu 10.04 发布的包)
  • Ubuntu v.10.04

  • 我使用命令启动 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 将被杀死