【问题标题】:Remote JMS glassfish 3.x远程 JMS glassfish 3.x
【发布时间】:2011-12-24 07:54:53
【问题描述】:

我为 glassfish3 服务器上的嵌入式 JMS 创建了独立的远程客户端。

客户端代码:


    jndiContext = new InitialContext();
    queueConnectionFactory = (TopicConnectionFactory) jndiContext.lookup("topekFactory");
    queue = (Topic) jndiContext.lookup("topek");

客户端只有在同一台机器上才能正常工作。每次我尝试在远程机器上运行它时,它都会挂在第二行。

我正在使用 -Dorg.omg.CORBA.ORBInitialHost=10.10.10.2 指向 glassfish 服务器。 还尝试使用属性创建 InitialContext :


    props.setProperty("java.naming.factory.initial", "com.sun.enterprise.naming.SerialInitContextFactory");
    props.setProperty("java.naming.factory.url.pkgs", "com.sun.enterprise.naming");
    props.setProperty("java.naming.factory.state", "com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl");
    props.setProperty("org.omg.CORBA.ORBInitialHost", "10.10.10.2");
    props.setProperty("org.omg.CORBA.ORBInitialPort", "3700");

但没有积极的结果。

任何想法,做错了什么?如何将远程客户端与 glassfish 嵌入式 jms 连接? 提前致谢

【问题讨论】:

  • 服务器绑定的是10.10.10.2还是0.0.0.0地址?你在什么操作系统上运行服务器?
  • 在 windows 和 SLES11 上试过(listenieng 是 0.0.0.0)。它在不同的机器/操作系统上可 100% 重现。是否有一些限制远程连接的配置?
  • 可以访问8080端口吗?
  • 第二台机器运行集群的其他节点没有任何问题,所有机器上的防火墙都关闭了。有趣的是我可以在 3700 端口上 telnet,所以问题更深了
  • 这是你第一次在你的帖子中提到集群......这就是为什么我给你我的答案。我会试着看看我是否能想出一些关于集群的东西。

标签: java glassfish jms jndi


【解决方案1】:

你可以远程访问8080端口吗?

尝试从远程计算机访问示例 Web 应用程序。例如http://10.10.10.2/sample/。如果您无法远程访问它而您可以在本地访问它,这意味着 glassfish 可能绑定在 localhost 地址上。

检查您的 domain.xml 并查看各种网络侦听器绑定的 IP 地址。如果它是 0.0.0.0,这意味着防火墙可能正在阻止传入连接。如果它们是 127.0.0.1,那么您必须将它们更改为网络 IP 或任何 IP(0.0.0.0)。

如果您的配置一切正常,但您在重新启动后仍然无法访问它,则完全禁用任何防火墙以查看在这种情况下是否一切正常。

签出this

为了查看默认情况下需要哪些端口,以防它是防火墙,并在防火墙上添加所需的规则以允许正确访问

现在您提到了集群。这可能会有所帮助:

check this out

【讨论】:

  • 防火墙已关闭,域配置中没有 127.0.0.1
猜你喜欢
  • 2011-07-26
  • 2011-01-29
  • 1970-01-01
  • 2016-06-09
  • 1970-01-01
  • 2015-12-03
  • 2014-10-20
  • 2011-05-17
  • 1970-01-01
相关资源
最近更新 更多