java - 用于远程 JMS MDB 的 JBoss EAP 6.2 任意地址和 Netty

标签 java jboss jms jboss7.x netty

我正在运行JBoss EAP 6.2 (嵌入 HornetQ 2.3.12.Final )作为将托管 JMS 队列和主题的独立消息传递服务器

还有其他 JBoss 服务器远程连接到消息服务器的队列和主题。

使用这个 Stackoverflow 答案:Binding JBoss AS 7 to all interfaces

我对我的 standalone-full.xml 进行了以下更改配置:

<interfaces>
    ...
    <interface name="public">     
<!--<inet-address value="${jboss.bind.address:127.0.0.1}"/>-->
        <any-address/>
    </interface>
</interfaces>

进行此更改后,我可以通过端口 4447 (JBoss Remoting) 成功从其他 JBoss 服务器连接并编写 JMS 客户端代码(ConnectionFactory、Connection、MessageProducer 等)。

JBoss日志有以下内容,让人放心:

[org.jboss.as.remoting] (MSC service thread 1-3) JBAS017100: 
Listening on 0.0.0.0:4447

但是,我无法通过远程 MDB 进行连接。 :-( 我需要弄清楚这一点,因为我们处理 MDB 而不是 JMS 客户端代码。

我查看了 JBoss 日志,并看到以下错误:

HQ121005: Invalid "host" value "0.0.0.0" detected for "netty" connector. 
Switching to "ptenn-fc20.arbfile.org". If this new address is incorrect please 
manually configure the connector to use the proper one.

我浏览了<subsystem xmlns="urn:jboss:domain:messaging:1.4"><hornetq-server> ...部分,没有看到任何有关如何为“netty”连接器指定不同地址的内容。

看起来 Netty 正在使用我指定的公共(public)接口(interface),我很困惑为什么 JBoss Remoting(在端口 4447 上)在 0.0.0.0 上监听得很好。 ,但 Netty(在端口 5445 上)不是。

如果有人有任何想法、见解或建议,我将真诚地感激。 :-)

谢谢

菲利普

最佳答案

菲利普,

主机通过standalone-full-ha.xml 的interfaces 元素指定。

然后,您可以在同一配置文件的套接字绑定(bind)元素中引用该接口(interface)。

例如下面的示例将 JMS 绑定(bind)到特定的 IP 地址,不再是 0.0.0.0...

<interfaces>
    <interface name="management">
        <!--<inet-address value="${jboss.bind.address.management:127.0.0.1}"/>-->
        <inet-address value="0.0.0.0"/>
    </interface>
    <interface name="public">
        <inet-address value="0.0.0.0"/>
        <!--just an FYI that we can use the following syntax too-->
        <!--<any-address/>-->
    </interface>
    <interface name="jms">  <-- HERE
        <inet-address value="${jboss.bind.address}"/>
    </interface>
    <!-- TODO - only show this if the jacorb subsystem is added  -->
    <interface name="unsecure">
        <!--
          ~  Used for IIOP sockets in the standard configuration.
          ~                  To secure JacORB you need to setup SSL 
          -->
        <inet-address value="${jboss.bind.address.unsecure:127.0.0.1}"/>
    </interface>
</interfaces>
<socket-binding-group name="standard-sockets" default-interface="public" port-offset="${jboss.socket.binding.port-offset:0}">
    .
    .
    .

    <!--JMS-->
    <socket-binding name="messaging" port="5445" interface="jms"/>  <-- HERE
    .
    .
    .
</socket-binding-group>

关于java - 用于远程 JMS MDB 的 JBoss EAP 6.2 任意地址和 Netty,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24558158/

相关文章:

url-rewriting - 如何配置 Undertow 处理程序以支持正确重写 SPA 书签?

mysql - 在 WildFly 中配置 MySql

jboss - 如何以编程方式创建带有 hornet q 的主题?

java - CDI bean 中的资源注入(inject)

java - 使用滚动搜索时如何删除elasticsearch中的重复搜索结果?

java - WebDriverException 无法识别的平台

java - 我将如何向 Activemq 发送消息

java - 使用具有特定路由键的消息?

Java:按钮和标签布局

java - 访问 JAR 中的资源