java - EC2 实例上从 Applet 到 JBoss 的 JNDI 查找

标签 java jboss applet amazon-ec2 jndi

我在 Linux Amazon EC2 实例上运行 JBoss 4.0.4.GA。我从浏览器连接到一个 URL,该 URL 映射到下载 Applet 的 JSP。 Applet 代码对 session Bean 进行 JNDI 查找。我在浏览器的 Java 控制台上看到的错误是:

Connection refused to host: 10.xxx.xxx.xxx
nested exception is: 
    java.net.ConnectException: Connection timed out: connect

即我的小程序正在尝试连接到实例的私有(private) IP,这当然注定会失败。

执行 JNDI 查找的[删节]代码是:

System.setProperty(InitialContext.PROVIDER_URL, "jnp://<public ip of EC2 instance>:1099");
InitialContext ic = new InitialContext(null);
Object o = ic.lookup("ejb/....MySessionBean");

当我在 Java 控制台中打开跟踪时,我可以看到正在向内部 IP 上的端口 1098 发出请求:

network: Connecting http://<public ip>:1099/ with proxy=DIRECT
network: Connecting http://<private ip>:1098/ with proxy=DIRECT

有人可以告诉我如何在外部 IP 上进行 1098 通信吗?

最佳答案

将 -Djava.rmi.server.hostname=public-IP 添加到 JBoss 启动解决了此问题。

关于java - EC2 实例上从 Applet 到 JBoss 的 JNDI 查找,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10414829/

相关文章:

java - Jenkins 的 Slack Slash 命令插件

java - 在 Program files 的 java 文件夹中放置两个 jre,一个在 jdk 中,一个在 outsite jdk 中的原因是什么

java - 解释来自jboss实例的GC日志

java - 小程序异常 : java. lang.ClassNotFoundException

php - 将图像拖放到 Web 表单中

java - 没有 ActionBar 的 Android Activity

java - 将参数传递给 restTemplate.getForObject 的最佳方式

Java EE 容器内部结构

应用服务器中的 JSF 2 问题?

Java - 在 Applet 中绘制文本