我想在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
第一个
有什么主意吗?谢谢。
1条答案
按热度按时间xzlaal3s1#
我在尝试附加到tomcat容器时遇到了类似的问题。VS代码显示了以下消息:
无法连接到远程VM com。sun。jdi。connect。spi。关闭连接异常
我认为问题在于进程不允许外部连接,除非它正在侦听
0.0.0.0
。将此环境变量添加到docker合成文件中的tomcat容器中:
或者,您可以使用
JAVA_TOOL_OPTS
来传递变量,但之后您应该定期启动 Catalina (不使用jpda)。