Java 错误:AMQ154003:无法使用Wildfly连接到JMS ActiveMQ

Java 错误:AMQ154003:无法使用Wildfly连接到JMS ActiveMQ,java,jakarta-ee,jms,wildfly,activemq,Java,Jakarta Ee,Jms,Wildfly,Activemq,我正在尝试使用IntelliJ在WildFly 19中创建一个简单的JMS ActiveMQ连接。我遵循了安装指南,但遇到了连接错误 我正在以独立模式作为本地服务器运行Wildfly。我已经在IntelliJ中更新了启动脚本环境变量,指向standalone-full.xml(显然,为了使用JMS,我需要使用standalone-full.xml) 我已经更新了XML文件,以便在代码中添加我要连接的JMS队列: EAR正在部署,JSF正在渲染,但我得到了一个JMS错误,它只是在堆栈跟踪中无限

我正在尝试使用IntelliJ在WildFly 19中创建一个简单的JMS ActiveMQ连接。我遵循了安装指南,但遇到了连接错误

我正在以独立模式作为本地服务器运行Wildfly。我已经在IntelliJ中更新了启动脚本环境变量,指向standalone-full.xml(显然,为了使用JMS,我需要使用
standalone-full.xml

我已经更新了XML文件,以便在代码中添加我要连接的JMS队列:


EAR正在部署,JSF正在渲染,但我得到了一个JMS错误,它只是在堆栈跟踪中无限循环。我已经附上了
standalone full.xml
、堆栈跟踪和java代码

任何帮助都将不胜感激

standalone full.xml
(由于字符限制而修订):


...
错误堆栈跟踪

10:30:55,530 ERROR [org.apache.activemq.artemis.ra] (default-threads - 1) AMQ154003: Unable to reconnect org.apache.activemq.artemis.ra.inflow.ActiveMQActivationSpec(ra=org.wildfly.extension.messaging.activemq.ActiveMQResourceAdapter@798f9ea7 destination=javax.jms.Queue destinationType=null ack=Auto-acknowledge durable=false clientID=null user=null maxSession=15): javax.naming.NameNotFoundException: javax.jms.Queue -- service jboss.naming.context.java."javax.jms.Queue"
    at org.jboss.as.naming.ServiceBasedNamingStore.lookup(ServiceBasedNamingStore.java:106)
    at org.jboss.as.naming.NamingContext.lookup(NamingContext.java:207)
    at org.jboss.as.naming.InitialContext$DefaultInitialContext.lookup(InitialContext.java:237)
    at org.jboss.as.naming.NamingContext.lookup(NamingContext.java:193)
    at org.jboss.as.naming.NamingContext.lookup(NamingContext.java:189)
    at javax.naming.InitialContext.lookup(InitialContext.java:417)
    at javax.naming.InitialContext.lookup(InitialContext.java:417)
    at org.apache.activemq.artemis.ra.ActiveMQRaUtils.lookup(ActiveMQRaUtils.java:164)
    at org.apache.activemq.artemis.ra.inflow.ActiveMQActivation.setupDestination(ActiveMQActivation.java:578)
    at org.apache.activemq.artemis.ra.inflow.ActiveMQActivation.setup(ActiveMQActivation.java:305)
    at org.apache.activemq.artemis.ra.inflow.ActiveMQActivation.reconnect(ActiveMQActivation.java:693)
    at org.apache.activemq.artemis.ra.inflow.ActiveMQActivation$SetupActivation.run(ActiveMQActivation.java:733)
    at org.wildfly.extension.messaging.activemq.ActiveMQResourceAdapter$WorkWrapper.run(ActiveMQResourceAdapter.java:161)
    at org.jboss.jca.core.workmanager.WorkWrapper.runWork(WorkWrapper.java:445)
    at org.jboss.as.connector.services.workmanager.WildflyWorkWrapper.runWork(WildflyWorkWrapper.java:69)
    at org.jboss.jca.core.workmanager.WorkWrapper.run(WorkWrapper.java:223)
    at org.jboss.threads.SimpleDirectExecutor.execute(SimpleDirectExecutor.java:29)
    at org.jboss.threads.QueueExecutor.runTask(QueueExecutor.java:789)
    at org.jboss.threads.QueueExecutor.access$100(QueueExecutor.java:44)
    at org.jboss.threads.QueueExecutor$Worker.run(QueueExecutor.java:809)
    at java.lang.Thread.run(Thread.java:748)
    at org.jboss.threads.JBossThread.run(JBossThread.java:485)
JMS使用者类:

packageejb\ujavacode;
@消息驱动(
激活配置={
@ActivationConfigProperty(propertyName=“destination”,propertyValue=“/jms/queue/hsportsque”),
@ActivationConfigProperty(propertyName=“destination”,propertyValue=“javax.jms.Queue”)
},
mappedName=“/jms/queue/hsportsque”)
公共类JmsConsumerBean实现javax.jms.MessageListener{
公共JmsConsumerBean(){
}
//定义当从jms队列接收消息时,使用者的操作
@凌驾
消息(消息消息)上的公共无效{
System.out.println(“来自JMS消费者消息驱动bean”);
试一试{
System.out.println(message.getBody(String.class));
}捕获(JME){
e、 printStackTrace();
}
}
}
JMS生产者类:

打包jaxrs\u javacode;
@适用范围
公共类JmsService{
//注入我们要将消息发送到的JMS队列
@资源(mappedName=“java:/jms/queue/hsportsquee”)//JNDI名称
专用队列;
@注入
@JMSConnectionFactory(“java:/ConnectionFactory”)
私有JMSContext上下文;
//向消费者发送消息的代码
公共无效发送(字符串消息){
试一试{
TextMessage TextMessage=context.createTextMessage(消息);
context.createProducer().send(hsportsque,textMessage);
System.out.println(“发送到JMS队列的消息”);
}捕获(例外e){
e、 printStackTrace();
}
}
}
JAX-RS资源端点:

打包jaxrs\u javacode;
//资源定义所需的各种http操作
@请求范围
@路径(“/inventoryitems”)//附加URI应用路径
@产生(“应用程序/json”)//接收并提供json
@使用(“应用程序/json”)
公共类InventoryItemEndpoint{
//添加JPS持久性
//更新方法以使用em和jpa数据层
@持久上下文
私人实体管理者实体管理者;
//将JMS服务注入REST端点
@注入
私人JmsService JmsService;
@交易的
@POST//POST请求;创建新的库存项目并返回响应
公共响应创建(最终InventoryItem InventoryItem){
persist(inventoryItem);//使用em persist方法
jmsService.send(inventoryItem.getName());//将库存项名称作为JMS文本消息发送
return Response.created(UriBuilder.fromResource(InventoryItemEndpoint.class)
.path(String.valueOf(inventoryItem.getInventoryItemId()).build()).build();
}
@获取//获取请求;按id获取库存项目
@Path(“/{id:[0-9][0-9]*}”)//方法级别@Path注释,在URI后面附加id值
公共响应findById(@PathParam(“id”)最终长id){
//现在使用em-find方法
InventoryItem InventoryItem=entityManager.find(InventoryItem.class,id);
如果(inventoryItem==null){
返回Response.status(Response.status.NOT_FOUND).build();
}
setQuantity(ThreadLocalRandom.current().nextLong(1100));
返回Response.ok(inventoryItem.build();
}
//新的异步方法;异步方法无效
//通过resume()方法调用完成向前处理
@得到
@路径(“/catalog/{catalogItemId}”)
public void asyncFindByCatalogId(@NotNull@PathParam(“catalogItemId”)长catalogItemId,
@暂停(异步响应){
//创建新线程
//睡5秒钟
新线程(()->{
试一试{
10:30:55,530 ERROR [org.apache.activemq.artemis.ra] (default-threads - 1) AMQ154003: Unable to reconnect org.apache.activemq.artemis.ra.inflow.ActiveMQActivationSpec(ra=org.wildfly.extension.messaging.activemq.ActiveMQResourceAdapter@798f9ea7 destination=javax.jms.Queue destinationType=null ack=Auto-acknowledge durable=false clientID=null user=null maxSession=15): javax.naming.NameNotFoundException: javax.jms.Queue -- service jboss.naming.context.java."javax.jms.Queue"
    at org.jboss.as.naming.ServiceBasedNamingStore.lookup(ServiceBasedNamingStore.java:106)
    at org.jboss.as.naming.NamingContext.lookup(NamingContext.java:207)
    at org.jboss.as.naming.InitialContext$DefaultInitialContext.lookup(InitialContext.java:237)
    at org.jboss.as.naming.NamingContext.lookup(NamingContext.java:193)
    at org.jboss.as.naming.NamingContext.lookup(NamingContext.java:189)
    at javax.naming.InitialContext.lookup(InitialContext.java:417)
    at javax.naming.InitialContext.lookup(InitialContext.java:417)
    at org.apache.activemq.artemis.ra.ActiveMQRaUtils.lookup(ActiveMQRaUtils.java:164)
    at org.apache.activemq.artemis.ra.inflow.ActiveMQActivation.setupDestination(ActiveMQActivation.java:578)
    at org.apache.activemq.artemis.ra.inflow.ActiveMQActivation.setup(ActiveMQActivation.java:305)
    at org.apache.activemq.artemis.ra.inflow.ActiveMQActivation.reconnect(ActiveMQActivation.java:693)
    at org.apache.activemq.artemis.ra.inflow.ActiveMQActivation$SetupActivation.run(ActiveMQActivation.java:733)
    at org.wildfly.extension.messaging.activemq.ActiveMQResourceAdapter$WorkWrapper.run(ActiveMQResourceAdapter.java:161)
    at org.jboss.jca.core.workmanager.WorkWrapper.runWork(WorkWrapper.java:445)
    at org.jboss.as.connector.services.workmanager.WildflyWorkWrapper.runWork(WildflyWorkWrapper.java:69)
    at org.jboss.jca.core.workmanager.WorkWrapper.run(WorkWrapper.java:223)
    at org.jboss.threads.SimpleDirectExecutor.execute(SimpleDirectExecutor.java:29)
    at org.jboss.threads.QueueExecutor.runTask(QueueExecutor.java:789)
    at org.jboss.threads.QueueExecutor.access$100(QueueExecutor.java:44)
    at org.jboss.threads.QueueExecutor$Worker.run(QueueExecutor.java:809)
    at java.lang.Thread.run(Thread.java:748)
    at org.jboss.threads.JBossThread.run(JBossThread.java:485)
javax.naming.NameNotFoundException: javax.jms.Queue -- service jboss.naming.context.java."javax.jms.Queue"