ERROR: transport error 202: bind failed when starting Tomcat 7 in debug mode

ERROR: transport error 202: bind failed when starting Tomcat 7 in debug mode

我已经在 windows7-64 位机器上安装了 tomcat 7.0.68。

如果我 运行 catalina.bat jpda start ,它只是打开和关闭并且没有生成日志。

如果我 运行 catalina.bat jpda 运行 我得到以下错误

Using CATALINA_BASE:   "C:\apache-tomcat-7.0.68"
Using CATALINA_HOME:   "C:\apache-tomcat-7.0.68"
Using CATALINA_TMPDIR: "C:\apache-tomcat-7.0.68\temp"
Using JRE_HOME:        "C:\Java\jre7"
Using CLASSPATH:       "C:\apache-tomcat-7.0.68\bin\bootstrap.jar;C:\apache- 
                         tomcat-7.0.68\bin\tomcat-juli.jar"
Picked up _JAVA_OPTIONS: -Xmx512M
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:750]
FATAL ERROR in native method: JDWP No transports initialized,
                       jvmtiError=AGENT_ERROR_TRANSPORT_INIT(197)

一些其他应用程序正在使用 tomcat 试图打开的端口。默认情况下,它使用 8080、8443、8005、8009 等, grep for tomcat 已使用以下命令使用的特定端口。

netstat -an

确定进程已经获取了冲突的端口并terminate/free启动以便tomcat可以使用它。 还有一件事,tomcat 调试模式尝试使用额外的端口进行调试(即 8000)。查看该端口是否已被其他进程使用

我更改了端口,将 JPDA_ADDRESS 设置为 1043,它对我有用。

这个问题好像重复了。而且,我觉得用CATALINA_OPTS更简单也更合适。

Tomcat failed to shutdown

上面的回答在下面。

Looking into catalina.sh, one can see CATALINA_OPTS is only used by the "start" and "start-security" commands, whereas JAVA_OPTS is also used by the "stop" command (at least with Tomcat 6.0.33 on openSUSE 12.1).

在我的例子中,我有几个 tomcat 运行,在两个 tomcat 中,我给出了相同的 jpda 地址,所以 tomcat 之一无法启动,因为地址已被使用。

尝试使用单行命令终止进程 -

pkill -9 -f tomcat

终止现有进程(kill -8 {PID})并重新启动。上面提到的错误应该消除

Windows回答

1.Detect PID

netstat -ano

找到你需要的端口和对应的PID

2.Kill 进程

taskkill /F /PID 1234

用你的PID

替换1234

我在 hybris 服务器启动时也遇到了同样的问题。

当我使用“hybrisserver.bat 调试”以调试模式启动 hybris(运行 在 tomcat 服务器上)时,我遇到了类似的错误。

因此 运行 服务器没有调试模式(即“hybrisserver.bat”)。

希望这对 hybris 开发人员有所帮助!