WildFly 27服务器JMS队列插消息:JMeter配置报错排查
WildFly 27 + JMeter 5.5 JMS Publisher 配置问题解决
版本适配确认
WildFly 27 内置的 ActiveMQ Artemis 版本就是 2.28.x,你添加的 artemis-core-client-2.28.0.jar 版本完全适配,版本问题不是报错原因。
核心配置调整(解决 Invalid broker URL 错误)
1. 修正 JNDI 上下文工厂与 Provider URL
WildFly 内置的 Artemis 不能用独立 Artemis 的上下文工厂,必须使用 WildFly 专属的命名客户端:
- Initial Context Factory:
org.wildfly.naming.client.WildFlyInitialContextFactory - Provider URL:使用 WildFly 的远程连接格式,默认是
remote+http://<WildFly主机IP>:8080或remote://<WildFly主机IP>:8080(两者等价,基于 HTTP 升级协议)注意:不要用独立 Artemis 的
tcp://<IP>:61616,WildFly 内置 Artemis 默认不开放这个端口
2. 补充必要依赖
仅添加 artemis-core-client.jar 不够,WildFly 远程 JNDI 还需要命名客户端依赖:
- 从 WildFly 安装目录的
bin/client/下复制wildfly-client-all.jar到 JMeter 的lib/目录,重启 JMeter这个 jar 包含了所有远程连接所需的依赖(命名客户端、Artemis 客户端、认证组件等)
3. 配置正确的队列 JNDI 名称
确保你的队列在 WildFly 中绑定到远程可访问的命名空间:
- 在 WildFly 的
standalone-full.xml(或domain-full.xml)中,队列的 JNDI 绑定需要包含java:jboss/exported/前缀,例如:<jms-queue name="YourQueueName" entries="java:jboss/exported/jms/queue/YourQueue java:/jms/queue/YourQueue"/> - JMeter 中填写的 Destination 应为
java:jboss/exported/jms/queue/YourQueue(远程访问必须用 exported 前缀的名称)
4. 配置认证信息
在 JMeter JMS Publisher 的 Connection Settings 中添加:
- Security Principal:WildFly 中拥有 JMS 访问权限的用户名(比如默认的 admin,需确保该用户已添加
guest或jms-user角色) - Security Credentials:对应用户的密码
验证 WildFly 连接器配置
检查 WildFly 的 standalone-full.xml 中是否存在正确的远程连接器:
<subsystem xmlns="urn:jboss:domain:messaging-activemq:14.0"> <server name="default"> <remote-connector name="http-connector" socket-binding="http"> <param name="http-upgrade-endpoint" value="http-acceptor"/> </remote-connector> <!-- 其他配置 --> </server> </subsystem>
默认的 http socket-binding 对应 8080 端口,若你修改过端口,需同步调整 Provider URL 中的端口号。
内容的提问来源于stack exchange,提问作者djura
相关产品推荐
相关产品推荐

