Err*_*404 6 java rmi jconsole amazon-ec2
我在我的macbook上运行Jconsole并尝试连接到没有图形的ec2上的linux终端(只有命令行访问).
我像这样运行我的代码:
java -jar program.jar -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9005 
-Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.remote.ssl=false
我在这里读到通过EC2访问时出现问题(连接后出现问题)并且解决方案似乎是' java.rmi.server.hostname to the public hostname of the instance'
我对如何做到这一点感到有点困惑.我尝试了两件事,一件是将它直接放在我的代码中(在void static main部分中):
System.setProperty( "java.rmi.server.hostname" , "external_EC2_address" ); //in my real code I have the correct address here
系统接受了它(当我创建/上传runnable jar时没有错误).我还在我的实例上打开防火墙以允许所有TCP流量.没运气.我尝试上述声明也作为启动程序的标志,但仍然没有运气.
有什么想法怎么做?
更新:这将显示我在Java的绿色,我更进一步(仍然无法工作),但我意识到把java -jar filename.jar,然后选项没有给我与放我的相同的结果-jar在命令的末尾.我试过了,程序试图连接,然后说连接失败(之前它只是在登录界面说它).
在虚拟机启动之前设置主机名属性:
java -Dcom.sun.management.jmxremote \
     -Dcom.sun.management.jmxremote.port=9005 \
     -Dcom.sun.management.jmxremote.authenticate=false \
     -Dcom.sun.management.remote.ssl=false \
     -Djava.rmi.server.hostname=the.public.ip \
     -jar program.jar
将相关规则添加到您的安全组中。
最后,确保 iptables 已停止,因为这可能是您无法从外部世界获得连接的原因。作为 root(或使用 sudo ...):
# service iptables stop
| 归档时间: | 
 | 
| 查看次数: | 4721 次 | 
| 最近记录: |