You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Bootable WildFly 25中messaging-activemq配置失败求助

问题:WildFly 25迁移中messaging-activemq CLI配置适配Elytron安全体系

问题背景

将可引导WildFly从24版本迁移至25.0.1.Final时,使用wildfly-jar-maven-plugin执行CLI配置messaging-activemq子系统,原WildFly24中正常运行的CLI命令在WildFly25中执行失败。

旧CLI命令(WildFly 24可用,WildFly 25执行失败)

/subsystem=messaging-activemq/server=default:add
/subsystem=messaging-activemq/server=default/security-setting=#:add
/subsystem=messaging-activemq/server=default/security-setting=#/role=guest:add(send=true,consume=true,create-non-durable-queue=true, delete-non-durable-queue=true)
/subsystem=messaging-activemq/server=default/address-setting=#:add(dead-letter-address=jms.queue.DLQ, expiry-address=jms.queue.ExpiryQueue, expiry-delay=-1L, max-delivery-attempts=10, max-size-bytes=10485760, page-size-bytes=2097152, message-counter-history-day-limit=10)
/subsystem=messaging-activemq/server=default/http-connector=http-connector:add(socket-binding=http, endpoint=http-acceptor)
/subsystem=messaging-activemq/server=default/http-connector=http-connector-throughput:add(socket-binding=http, endpoint="http-acceptor-throughput" ,params={batch-delay="50"})
/subsystem=messaging-activemq/server=default/in-vm-connector=in-vm:add(server-id="0", params={buffer-pooling=false})
/subsystem=messaging-activemq/server=default/http-acceptor=http-acceptor:add(http-listener="default")
/subsystem=messaging-activemq/server=default/http-acceptor=http-acceptor-throughput:add(http-listener="default", params={batch-delay="50", direct-deliver="false"})
/subsystem=messaging-activemq/server=default/in-vm-acceptor=in-vm:add(server-id="0", params={buffer-pooling=false})
/subsystem=messaging-activemq/server=default/jms-queue=ExpiryQueue:add(entries=["java:/jms/queue/ExpiryQueue"])
/subsystem=messaging-activemq/server=default/jms-queue=DLQ:add(entries=["java:/jms/queue/DLQ"])
/subsystem=messaging-activemq/server=default/jms-queue=LoggingQueue:add(entries=["java:/jms/queue/LoggingQueue"])
/subsystem=messaging-activemq/server=default/connection-factory=InVmConnectionFactory:add(entries=[java:/ConnectionFactory], connectors=[in-vm])
/subsystem=messaging-activemq/server=default/connection-factory=RemoteConnectionFactory:add(entries=[java:jboss/exported/jms/RemoteConnectionFactory], connectors=[http-connector])
/subsystem=messaging-activemq/server=default/pooled-connection-factory=activemq-ra:add(entries=[ava:/JmsXA java:jboss/DefaultJMSConnectionFactory], connectors=[in-vm], transaction=xa)

执行错误信息

[ERROR] Exception in thread "main" java.lang.reflect.InvocationTargetException
[ERROR]     at jdk.internal.reflect.GeneratedMethodAccessor1.invoke(Unknown Source)
[ERROR]     at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[ERROR]     at java.base/java.lang.reflect.Method.invoke(Method.java:566)
[ERROR]     at org.wildfly.plugins.bootablejar.maven.cli.CLIWrapper.handle(CLIWrapper.java:82)
[ERROR]     at org.wildfly.plugins.bootablejar.maven.cli.CLIForkedExecutor.main(CLIForkedExecutor.java:49)
[ERROR] Caused by: org.jboss.as.cli.CommandLineException: {
[ERROR]     "outcome" => "failed",
[ERROR]     "failure-description" => "WFLYCTL0369: Required capabilities are not available:
[ERROR]     org.wildfly.security.legacy-security-domain.other; There are no known registration points which can provide this capability.",
[ERROR]     "rolled-back" => true
[ERROR] }

当前环境配置

  • wildfly-jar-maven-plugin启用的layers:
    <layer>datasources</layer>
    <layer>jaxrs-server</layer>
    <layer>jpa</layer>
    <layer>cdi</layer>
    <layer>ee</layer>
    <layer>security-manager</layer>
    <layer>elytron</layer>
    <layer>ee-security</layer>
    <layer>ejb</layer>
    <layer>ejb-lite</layer>
    <layer>mail</layer>
    <layer>management</layer>
    <layer>web-server</layer>
    <layer>webservices</layer>
    <layer>batch-jberet</layer>
    <layer>messaging-activemq</layer>
    <layer>resource-adapters</layer>
    <layer>transactions</layer>
    
  • WildFly25的standalone-full.xml中messaging-activemq子系统默认包含<security elytron-domain="ApplicationDomain"/>,但旧CLI未生成该配置;且WildFly25已移除legacy-security层,导致依赖遗留安全域的命令执行失败。

适配Elytron安全体系的等效CLI命令

修改核心在于添加Elytron安全域配置,并修正原命令中的拼写错误(ava:/JmsXA改为java:/JmsXA):

# 添加server并指定Elytron安全域
/subsystem=messaging-activemq/server=default:add(security={elytron-domain=ApplicationDomain})
# 安全设置与原命令一致
/subsystem=messaging-activemq/server=default/security-setting=#:add
/subsystem=messaging-activemq/server=default/security-setting=#/role=guest:add(send=true,consume=true,create-non-durable-queue=true, delete-non-durable-queue=true)
# 地址设置与原命令一致
/subsystem=messaging-activemq/server=default/address-setting=#:add(dead-letter-address=jms.queue.DLQ, expiry-address=jms.queue.ExpiryQueue, expiry-delay=-1L, max-delivery-attempts=10, max-size-bytes=10485760, page-size-bytes=2097152, message-counter-history-day-limit=10)
# 连接器、接收器配置与原命令一致
/subsystem=messaging-activemq/server=default/http-connector=http-connector:add(socket-binding=http, endpoint=http-acceptor)
/subsystem=messaging-activemq/server=default/http-connector=http-connector-throughput:add(socket-binding=http, endpoint="http-acceptor-throughput" ,params={batch-delay="50"})
/subsystem=messaging-activemq/server=default/in-vm-connector=in-vm:add(server-id="0", params={buffer-pooling=false})
/subsystem=messaging-activemq/server=default/http-acceptor=http-acceptor:add(http-listener="default")
/subsystem=messaging-activemq/server=default/http-acceptor=http-acceptor-throughput:add(http-listener="default", params={batch-delay="50", direct-deliver="false"})
/subsystem=messaging-activemq/server=default/in-vm-acceptor=in-vm:add(server-id="0", params={buffer-pooling=false})
# JMS队列配置与原命令一致
/subsystem=messaging-activemq/server=default/jms-queue=ExpiryQueue:add(entries=["java:/jms/queue/ExpiryQueue"])
/subsystem=messaging-activemq/server=default/jms-queue=DLQ:add(entries=["java:/jms/queue/DLQ"])
/subsystem=messaging-activemq/server=default/jms-queue=LoggingQueue:add(entries=["java:/jms/queue/LoggingQueue"])
# 连接工厂配置与原命令一致
/subsystem=messaging-activemq/server=default/connection-factory=InVmConnectionFactory:add(entries=[java:/ConnectionFactory], connectors=[in-vm])
/subsystem=messaging-activemq/server=default/connection-factory=RemoteConnectionFactory:add(entries=[java:jboss/exported/jms/RemoteConnectionFactory], connectors=[http-connector])
# 修正拼写错误:ava:/JmsXA → java:/JmsXA
/subsystem=messaging-activemq/server=default/pooled-connection-factory=activemq-ra:add(entries=[java:/JmsXA java:jboss/DefaultJMSConnectionFactory], connectors=[in-vm], transaction=xa)

内容的提问来源于stack exchange,提问作者Thore Gröndahl

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 03:00:01