ris*_*shi 4 eclipse tomcat amazon-ec2
我有在Amazon Linux EC2实例上运行的Tomcat 8。我通过调试模式启动了Tomcat./catalina.sh jpda start
我认为服务器以调试模式启动,因为我可以看到以下行: Listening for transport dt_socket at address: 8000在日志的开头。我的安全组还为入站请求打开了8000端口。
我正在尝试从Mac El Capitan上的Eclipse Mars 4.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
Run Code Online (Sandbox Code Playgroud)
但是运行命令netstat -an | grep 8000只会给出:
tcp 0 0 127.0.0.1:8000 0.0.0.0:* LISTEN
Run Code Online (Sandbox Code Playgroud)
我注意到了另一件事。Tomcat管理器中“服务器信息”下的IP与实际的公共IP不同。那是预期的吗?
我有完全一样的问题。原因是Tomcat仅在localhost上侦听端口8000。为了让Tomcat听取外界的声音,我们需要告诉它外界IP。由于Tomcat默认开始使用用户“ tomcat”,因此该地址应位于catalina.sh所期望的位置。这是我最终解决的方法:
仅添加一行:
export JPDA_ADDRESS={host private IP}:{port}
Run Code Online (Sandbox Code Playgroud)
替换{host private IP}为您的EC2实例专用IP和{port}计划用于远程调试的端口号。我不知道EC2公共IP是否可以工作。没去尝试。
如有必要,更正所有者和组(例如,tomcat:tomcat):
sudo chown tomcat:tomcat setenv.sh
Run Code Online (Sandbox Code Playgroud)启用执行位
sudo chmod a+x setenv.sh
Run Code Online (Sandbox Code Playgroud)使用启动或重启Tomcat
catalina.sh jpda start
Run Code Online (Sandbox Code Playgroud)关于EC2的私有和公共IP。是的,我使用'netstat'观察到了同样的事情。
| 归档时间: |
|
| 查看次数: |
1414 次 |
| 最近记录: |