Configuration 向远程JMS主题发送消息

Configuration 向远程JMS主题发送消息,configuration,jboss,jms,Configuration,Jboss,Jms,我正在编写一个向远程服务器发送JMS消息的小实用程序,但是我未能正确配置InitialContext(或者看起来是这样) 初始化上下文的代码: Properties p = new Properties(); p.put(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory"); p.put(Context.URL_PKG_PREFIXES,

我正在编写一个向远程服务器发送JMS消息的小实用程序,但是我未能正确配置InitialContext(或者看起来是这样)

初始化上下文的代码:

      Properties p = new Properties();
      p.put(Context.INITIAL_CONTEXT_FACTORY, 
            "org.jnp.interfaces.NamingContextFactory");
      p.put(Context.URL_PKG_PREFIXES, "org.jboss.naming:org.jnp.interfaces");
      p.put(Context.PROVIDER_URL, "jnp://10.10.10.10:1099/");
      Context context = new InitialContext(p);
但当我运行它时,会出现一个异常:

所以让我困惑的是,我抱怨127.0.0.1事件,尽管我将其配置为10.10.10.10,它是活动的,运行jboss,没有防火墙,我可以获得一个到端口1099的telnet会话,所以看起来还可以


有什么建议吗?或者助手?

这是因为JNDI和相关协议本质上是连接回的,后续请求将转到服务器“相信”它应该侦听的IP。如果您将telnet连接到10.10.10.10:1099,并查看输出,您将看到如下内容:

telnet 10.10.10.10 1099
[Connection message]
[Garbage]
127.0.0.1....
原因是您的服务器正在127.0.0.1上“服务”,并将以该地址作为JNDI位置进行回复。因为您(很可能)在远程计算机上,当您的远程计算机尝试连接到Jboss服务器通知其连接到的IP(127.0.0.1)时,它会尝试连接到自身,而不是Jboss服务器

您需要使用以下命令启动jboss:./run.sh-b0.0.0(所有IP绑定),或者将计算机上的localhost条目更改为10.10.10.10


(顺便说一句,我记得我为此奋斗了很长时间,我知道这是多么令人沮丧)

这看起来很有希望:)我肯定会在明天早上尝试并向你汇报是的-我记得几年前花了几天时间在这方面。冒烟的枪在telnet会话中-如果在它的末尾显示127.0.0.1,则远程客户端将尝试连接到该IP。你也可以用这个来检查你的修复程序-一旦正确的IP运行起来,它就会在那里列出。工作得很好,我不得不选择一个IP,因为-b参数似乎不适用于多主机机器。我在Jboss上也遇到了同样的问题,我只是想知道是否有更好的用户友好方式来配置它。我记得我第一次想在远程机器上使用Jboss时浪费了几天时间。我在这样一个小组里找到了答案。有人知道他们是否有这个配置的帮助文档吗?
telnet 10.10.10.10 1099
[Connection message]
[Garbage]
127.0.0.1....