【问题标题】:ERROR: transport error 202: bind failed when starting Tomcat 7 in debug mode错误:传输错误 202:在调试模式下启动 Tomcat 7 时绑定失败
【发布时间】:2016-03-11 15:03:52
【问题描述】:

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

如果我运行 catalina.bat jpda start ,它只会打开和关闭,不会生成任何日志。

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

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 failed to shutdown的可能重复

标签: tomcat tomcat7


【解决方案1】:

尝试使用单行命令杀死进程 -

pkill -9 -f tomcat

【讨论】:

  • 你可能需要 sudo 它。
【解决方案2】:

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

netstat -an

识别已经获取冲突端口的进程并终止/释放以便 tomcat 可以使用它。 还有一件事,tomcat 调试模式尝试使用额外的端口进行调试(即 8000)。查看该端口是否已被其他进程使用

【讨论】:

  • 最像你先执行了 statup.bat 而忘记停止它。这已经绑定了端口并且没有释放它。请检查这个角度。在最坏的情况下(虽然不推荐),请尝试重新启动。在任何其他进程之前执行调试。
  • 还有一件事,tomcat 调试模式尝试使用额外的端口进行调试(即 8000)。查看该端口是否已被其他进程使用
  • 我不是忘了停下来。我重新启动并在我的系统上执行了调试作为第一件事。它不起作用,所以发布了这个问题。
【解决方案3】:

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

【讨论】:

  • 酷...之前是什么?您是否检查过它是否被其他进程使用?
  • 我使用 netstat -an 进行了检查,但随后它显示我正在使用的端口。但是是的,改变端口解决了这个问题,所以松了一口气
  • 对我来说之前的值是默认值,即 8000
  • 谢谢.. 我也有同样的问题。我通过更改 JPDA_ADDRESS 解决了它。
【解决方案4】:

这个问题似乎是重复的。而且,我认为使用 CATALINA_OPTS 更简单、更合适。

Tomcat failed to shutdown

上面的答案在下面说。

查看 catalina.sh,可以看到 CATALINA_OPTS 仅用于“start”和“start-security”命令,而 JAVA_OPTS 也用于“stop”命令(至少在 openSUSE 上的 Tomcat 6.0.33 中) 12.1)。

【讨论】:

    【解决方案5】:

    Windows 答案

    1.检测PID

    netstat -ano
    

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

    2.杀死进程

    taskkill /F /PID 1234
    

    1234 替换为您的PID

    【讨论】:

      【解决方案6】:

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

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

      所以在没有调试模式的情况下运行服务器(即“hybrisserver.bat”)。

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

      【讨论】:

        【解决方案7】:

        在我的情况下,我有几个 tomcat 正在运行,在两个 tomcat 中我给出了相同的 jpda 地址,所以其中一个 tomcat 无法启动,因为地址已经在使用中。

        【讨论】:

          【解决方案8】:

          杀死现有进程(kill -8 {PID})并重新启动。上述错误应该消除

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2019-10-11
            • 2017-05-14
            • 2011-01-15
            • 2016-05-19
            • 1970-01-01
            • 2012-08-06
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多