使用VSCode/Intellij远程调试Docker容器中的Tomcat/Wildfly服务器

gkn4icbw  于 2022-11-13  发布在  Vscode
关注(0)|答案(1)|浏览(168)

我想在Wildfly/Tomcat中远程调试嵌入在Docker容器中的Java应用程序。我想在VsCode中调试该应用程序;我还尝试在IntelliJ中进行远程调试。对于这两种情况,我都得到了相同的错误:

Error running 'Tomcat in Docker': Unable to open debugger port (localhost:9000): java.net.SocketException "Connection reset"

对接合成

version: '3.7'

services:
   wildfly:
      image: jboss/wildfly:latest
      ports:
        - 8088:8080
        - 9990:9990
        - 8787:8787
      entrypoint: "/opt/jboss/wildfly/bin/standalone.sh -b 0.0.0.0 --debug"
   tomcat:
     image: tomcat:10
     environment:
       - JPDA_ADDRESS=8000
       - JPDA_TRANSPORT=dt_socket
     ports:
       - 8888:8080
       - 9000:8000
     entrypoint: "/usr/local/tomcat/bin/catalina.sh jpda run"

VsCode中的launch.json
第一个
有什么主意吗?谢谢。

xzlaal3s

xzlaal3s1#

我在尝试附加到tomcat容器时遇到了类似的问题。VS代码显示了以下消息:
无法连接到远程VM com。sun。jdi。connect。spi。关闭连接异常
我认为问题在于进程不允许外部连接,除非它正在侦听0.0.0.0
将此环境变量添加到docker合成文件中的tomcat容器中:

JPDA_OPTS: "-agentlib:jdwp=transport=dt_socket,address=0.0.0.0:8000,server=y,suspend=n"

或者,您可以使用JAVA_TOOL_OPTS来传递变量,但之后您应该定期启动 Catalina (不使用jpda)。

JAVA_TOOL_OPTIONS: "-agentlib:jdwp=transport=dt_socket,address=0.0.0.0:8000,server=y,suspend=n"

相关问题