我有一个独立的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
似乎没有发生。有没有什么工具可以帮助我检查这个问题,或者你们知道哪里出了问题吗?
编辑:对不起,伙计们,我忘了添加一些东西。这是一个错别字。然而,当使用标准配置
时,我收到了一个错误。AMQ122005:无效"host"值"0.0.0.0"检测到"http-connector"连接器。
所以我假设某些东西配置错误,这是无法访问嵌入的artemis实例的原因。我不确定阿尔忒弥斯的标准端口是什么?是localhost:9990吗?
关于版本
应用程序 | 版本 | 阿耳特弥斯 | 2.19.1 |
---|---|
Wildfly | 26.1 |
AMQ122005
消息警告您已经绑定了" activemq"socket-binding
正在被"http-connector"使用。http-connector
到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。
为什么不使用standalone-full.xml
呢?它有一个完整的嵌入式Artemis代理。WildFly 27的另一个解决方案是使用Galleon并提供嵌入式activemq层。