gpt4 book ai didi

eclipse - 使用 Docker-Compose 时,使用 JPDA 进行远程调试不会通过 Eclipse 连接到 Tomcat

转载 作者:行者123 更新时间:2023-11-28 21:51:01 25 4
gpt4 key购买 nike

我是 Docker 的新手,所以这可能是我做错的简单事情。在使用“Docker run”启动 Tomcat 容器时,有了所有解决方案,我已经能够使用 eclipse 进行远程调试。

docker run -it --rm -e JPDA_ADDRESS=8000 -e JPDA_TRANSPORT=dt_socket -p 8888:8080 -p 8000:8000 tomcat:8.0-jre8/usr/local/tomcat/bin/catalina.sh jpda运行

但是,当使用 docker-compose 时,我会收到“无法连接到远程 VM。连接被拒绝”对话框。

docker-compose up

docker-compose.yml 设置:

tomcat:
图片:tomcat:8.0-jre8
# 开始 - 远程调试设置
# 无论有没有这个 network_mode 设置都不起作用。但是通过“docker container inspect *CID*”看到的桥接设置看起来与工作解决方案几乎相同
网络模式:网桥
环境:
- JPDA_ADDRESS:8000
- JPDA_TRANSPORT:dt_socket
入口点:/usr/local/tomcat/bin/catalina.sh jpda run
# 结束 - 远程调试设置
部署:
重新启动策略:
条件:on-failure
放置:
约束:[node.role == manager]
端口:
- 8888:8080
# 远程调试设置 jpda 端口
- 8000:8000

与“docker run”一起使用的我的 eclipse 设置是:

远程 Java 应用程序:
主机:本地主机
端口:8000

注意:通过 docker-compose 设置,我还在启动输出中看到预期的打印:

在地址监听传输 dt_socket:8000

并且对于这两种部署,我都可以通过公开的端口 8888 访问 Web 服务的功能。即。这个简单的链接返回“你好”。

http://localhost:8888/MyEmulatorService/rest/MES/

对于为什么我在以这种方式启动时无法进行远程调试有什么想法吗?我怀疑网络配置的设置方式存在细微差别。

最佳答案

我的一个 friend 解决了这个问题。即使启动输出让它看起来一切正常,并且 catalina.sh 使用的默认端口和传输是 8000,dt_socket。

环境变量没有被传递到容器中,这导致了损坏。也许其他人可以解释这对 .sh 脚本有何影响?

这个问题是通过隧道进入容器并列出环境变量来检测的。

docker exec -it *CID* bash
env

我的 docker-compose.yml 文件的变化现在看起来像:

   environment:
JPDA_ADDRESS: 8000
JPDA_TRANSPORT: dt_socket

关于eclipse - 使用 Docker-Compose 时,使用 JPDA 进行远程调试不会通过 Eclipse 连接到 Tomcat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45383645/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com