我在Amazon EC2实例上运行Tomcat 8。我通过./catalina.sh jpda start在调试模式下启动了Tomcat
我认为服务器是在调试模式下启动的,因为我可以在日志开始时看到一行:Listening for transport dt_socket at address: 8000。另外,我的安全组为入站请求打开了8000端口。
我正在尝试从上的EclipseMars4.5.1远程调试这一功能。但它总是给我带来错误Failed to connect to remote VM. Connection refused.
我遗漏了什么吗?我能更多地调试它的方法是什么?
-编辑更多信息--
添加更多的信息。我不知道这会不会有帮助。
运行命令:netstat -an | grep 80提供以下输出:
tcp 0 0 127.0.0.1:8000 0.0.0.0:* LISTEN
tcp 0 0 172.31.26.122:80 185.30.165.34:80 SYN_RECV
tcp 0 0 127.0.0.1:3306 127.0.0.1:55080 ESTABLISHED
tcp 0 0 ::ffff:127.0.0.1:8005 :::* LISTEN
tcp 0 0 :::8009 :::* LISTEN
tcp 0 0 :::80 :::* LISTEN
tcp 0 0 ::ffff:127.0.0.1:55080 ::ffff:127.0.0.1:3306 ESTABLISHED
udp 0 0 0.0.0.0:980 0.0.0.0:*
udp 0 0 :::980 :::*
unix 2 [ ACC ] SEQPACKET LISTENING 8016 @/org/kernel/udev/udevd
unix 3 [ ] DGRAM 8025
unix 3 [ ] DGRAM 8024 但是,运行命令netstat -an | grep 8000提供的只是:
tcp 0 0 127.0.0.1:8000 0.0.0.0:* LISTEN 还有一件事我注意到了。服务器信息下Tomcat管理器中的IP不同于实际的公共IP。这是意料之中吗?
发布于 2016-03-25 13:28:47
我也有同样的问题。原因是Tomcat只在本地主机上监听端口8000。为了让Tomcat去听外面的世界,我们需要告诉它外部世界的IP。由于Tomcat默认开始使用用户“tomcat”,因此该地址应该位于catalina.sh期望的位置。这就是我最终解决这个问题的方法:
{host private IP}替换为EC2实例私有IP,将{port}替换为您计划用于远程调试的端口号。我不知道EC2的公共IP是否有效。没有费心去尝试。关于EC2的私有和公共IP。是的,我用'netstat‘观察到了同样的事情。
发布于 2016-02-18 19:56:48
调试器只侦听本地主机接口,它严格地是VM本地的。你可以做两件事来解决这个问题,
https://stackoverflow.com/questions/35321940
复制相似问题