关闭远程调试 tomcat 从 eclipse 启动

Shutting down remotely debugged tomcat started from eclipse

当我从 Eclipse 启动 Tomcat 7 时,我通常会添加类似

的内容
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8101

到它的启动配置,因为我有时想稍后远程附加 Eclipse 调试器。但是当我这样做并尝试从 Cclipses "servers" 视图关闭 Tomcat 时,我收到错误

FATAL ERROR in native method: JDWP No transports initialized, jvmtiError=AGENT_ERROR_TRANSPORT_INIT(197)
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 

我假设这是因为 Eclipse 启动了一个新进程,该进程通常告诉 运行 Tomcat 关闭,并且还使用了我在启动配置中引入的调试参数。此过程失败,因为指定的端口 8101 已被使用。有没有人有想法允许在该设置中完全 Tomcat 关闭?

(我不想首先在调试模式下启动 Tomcat,因为这会减慢 eclipse 和 Tomcat。我也不想在调试模式下重新启动它我想调试,因为这需要一些时间。)

在Tomcat的server.xml

<Server port="8005" shutdown="SHUTDOWN">

设置可用于关机Tomcat。你可以写一个简单的程序然后 运行 它。

import java.net.*;
public class t {
    public static void main(String[] args) throws Exception {
        Socket s = new Socket("127.0.0.1",8005);
        s.getOutputStream().write("SHUTDOWN".getBytes());
        s.close();
    }
}