簡體   English   中英

如何在 WildFly 中設置和測試嵌入式 ActiveMQ Artemis 服務器?

[英]How can I set up and test the embedded ActiveMQ Artemis server in WildFly?

我有一個獨立的 WildFly 服務器正在運行,並且想設置 ActiveMQ Artemis 的嵌入式實例,但我不確定我是否正確完成了它。 以下是我的standalone-full.xml中的相關部分:

<server>
    ...
    <profile>
        ...
        <subsystem xmlns="urn:jboss:domain:messaging-activemq:13.1">
            <server name="default">
                ...
                <http-connector name="http-connector" socket-binding="activemq" endpoint="http-acceptor"/>
                <http-connector name="http-connector-throughput" socket-binding="activemq" endpoint="http-acceptor-throughput">
                    <param name="batch-delay" value="50"/>
                </http-connector>

                <http-acceptor name="http-acceptor" http-listener="activemq"/>
                <http-acceptor name="http-acceptor-throughput" http-listener="activemq">
                    <param name="batch-delay" value="50"/>
                    <param name="direct-deliver" value="false"/>
                </http-acceptor>
                ...
            </server>
        </subsystem>
        ...
        <subsystem xmlns="urn:jboss:domain:undertow:12.0" default-server="default-server" default-virtual-host="default-host" default-servlet-container="default" default-security-domain="other" statistics-enabled="${wildfly.undertow.statistics-enabled:${wildfly.statistics-enabled:false}}">
            <server name="default-server">
                ...
                <http-listener name="activemq" socket-binding="activemq" enable-http2="true"/>
                ...
            </server>
        </subsystem>
        ...
    </profile>
    ...
    <socket-binding-group name="standard-sockets" default-interface="public" port-offset="${jboss.socket.binding.port-offset:0}">
        ...
        <interface name="management">
            <inet-address value="${jboss.bind.address.management:127.0.0.1}"/>
        </interface>

        <socket-binding name="managemnet" interface="activemq-interface" port="${jboss.activemq.port:8081}"/>
        ...
    </socket-binding-group>
</server>

當我嘗試連接到位於tcp://localhost:8081的服務器時,似乎沒有任何反應。 有沒有什么工具可以幫助我檢查這個問題,或者你們知道可能出了什么問題嗎?

編輯:對不起,我忘了添加一些東西。 我有 standalone-full.xml 那是一個錯字。 但是我在使用標准配置時收到錯誤

AMQ122005:為“http-connector”連接器檢測到無效的“主機”值“0.0.0.0”。

所以我假設某些配置錯誤,這是無法訪問嵌入式 artemis 實例的原因。 我不確定 Artemis 的標准端口是什么? 是 localhost:9990 嗎?

關於版本

應用 版本
阿爾忒彌斯 2.19.1
野蠅 26.1

我正在嘗試連接此處描述的 Quarkus JMS 示例https://quarkus.io/guides/jms

為什么不使用standalone-full.xml ,它有一個完整的嵌入式 Artemis 代理。 WildFly 27 的另一個解決方案是使用Galleon並提供embedded-activemq層。

AMQ122005消息警告您已將“http-connector” http-connector使用的“activemq” socket-binding到無效的0.0.0.0 查找任何配置為使用該連接器的 JMS ConnectionFactory 的遠程客戶端將收到一個指向0.0.0.0的存根,這將不起作用。

您在這里唯一需要做的就是將服務器綁定到一個具體的、可遠程訪問的接口,而不是0.0.0.0 因此,您不需要額外的http-listener等。

如果您使用的是 JNDI,那么您可以使用 URL 連接嵌入式代理,如下所示

http-remoting://host:8080

如果您使用 JNDI,那么您可以使用 URL 連接到嵌入式代理,例如:

tcp://host:8080?httpUpgradeEnabled=true

這是您在 Quarkus 的application.properties中配置的內容,在這種情況下,您可以忽略AMQ122005消息,因為您沒有使用 JNDI。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM