gpt4 book ai didi

configuration - 向远程 JMS 主题发送消息

转载 作者:行者123 更新时间:2023-12-04 03:20:20 27 4
gpt4 key购买 nike

我正在编写一个小实用程序来将 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);

但是当我运行它时出现异常:

javax.naming.CommunicationException 
[Root exception is java.rmi.ConnectException:
Connection refused to host: 127.0.0.1;
nested exception is:
java.net.ConnectException: Connection refused: connect]

所以让我感到困惑的是,尽管我正在为 10.10.10.10 配置它,但它仍在提示 127.0.0.1 事件,它是事件的,运行 jboss,没有防火墙,我可以获得一个到端口 1099 的 telnet session ,所以看起来没事

有什么指点吗?还是 helper ?

最佳答案

这是因为 JNDI 和相关协议(protocol)本质上是回连的,后续请求将转到服务器“认为”它应该监听的 IP。如果您远程登录到 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 -b 0.0.0.0(所有 IP 绑定(bind)),或者将机器上的本地主机条目更改为 10.10.10.10

(顺便说一句,我记得自己为此苦苦挣扎了好久,知道这有多令人沮丧)

关于configuration - 向远程 JMS 主题发送消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1036085/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com