【问题标题】:WildFly Swarm and ActiveMq (Required services that are not installed)WildFly Swarm 和 ActiveMq(未安装的必需服务)
【发布时间】:2017-12-01 13:58:47
【问题描述】:

我在 JavaEE 中有一个使用 JMS 协议进行消息传递的微服务。我正在尝试使用远程连接创建一个带有 WildFly Swarm 的 UberJar(在这种情况下,我有一个运行 ActiveMq 实例的 docker 容器)。

在文档 (https://wildfly-swarm.gitbooks.io/wildfly-swarm-users-guide/content/common/messaging.html) 中,没有配置用户名和密码。你们知道把这些信息放在哪里吗?

执行生成的uberJar,出现如下错误:

2017-06-28 10:49:26,630 ERROR [org.jboss.as.controller.management-operation] (main) WFLYCTL0013: Operation ("add") failed - address: (("deployment" => "srcrr-batcher.war")) - failure description: {
    "WFLYCTL0412: Required services that are not installed:" => ["jboss.naming.context.java.module.srcrr-batcher.srcrr-batcher.env.jms.\"error.inbox\""],
    "WFLYCTL0180: Services with missing/unavailable dependencies" => ["jboss.naming.context.java.module.srcrr-batcher.srcrr-batcher.env.\"com.magento.mcom.sorcerer.jms.AbstractReceiverBean\".errorQueue is missing [jboss.naming.context.java.module.srcrr-batcher.srcrr-batcher.env.jms.\"error.inbox\"]"]
}
2017-06-28 10:49:26,631 ERROR [org.jboss.as.server] (main) WFLYSRV0021: Deploy of deployment "srcrr-batcher.war" was rolled back with the following failure message:
{
    "WFLYCTL0412: Required services that are not installed:" => ["jboss.naming.context.java.module.srcrr-batcher.srcrr-batcher.env.jms.\"error.inbox\""],
    "WFLYCTL0180: Services with missing/unavailable dependencies" => ["jboss.naming.context.java.module.srcrr-batcher.srcrr-batcher.env.\"com.magento.mcom.sorcerer.jms.AbstractReceiverBean\".errorQueue is missing [jboss.naming.context.java.module.srcrr-batcher.srcrr-batcher.env.jms.\"error.inbox\"]"]
}

我不太明白缺少什么依赖项,任何帮助将不胜感激。

谢谢!

【问题讨论】:

    标签: jakarta-ee activemq messaging wildfly-10


    【解决方案1】:

    这些服务大致机械地转换为 JNDI 名称:

    jboss.naming.context.java.module.srcrr-batcher.srcrr/batcher.env.jms.\"error.inbox\"":
    
    java:module/srcrr-batcher/srccrr-batcher/env/jms/error.inbox
    

    重复的“srcrr-batcher”很好奇。

    如果您可以发布完整服务器日志的要点,可能带有 -Dswarm.logging=DEBUG,这可以帮助我们确定发生了什么。

    此外,参考指南还为您的 YAML 配置提供了很多的配置选项:

    https://reference.wildfly-swarm.io/fractions/messaging.html

    【讨论】:

      【解决方案2】:

      终于找到问题了,是连接工厂的注解错误:

      代替

      @Resource(lookup = "jms/error.inbox")
      

      我用

      @Resource(name = "jms/error.inbox")
      

      感谢您的帮助!

      【讨论】:

      • 这是我在 swarm 中看到的一个问题,jndi 查找 api 的使用是不同的。感谢您指出这一点。
      • 这就是我如此热爱的原因,为我节省了很多头痛和数小时的搜索时间:) 谢谢@Virge
      【解决方案3】:

      抱歉,我来晚了 :) 很高兴你找到了它,感谢您使用 Wildfly Swarm。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-02-05
        • 1970-01-01
        • 2017-01-09
        • 2022-11-19
        • 2017-03-14
        • 2019-06-01
        • 1970-01-01
        • 2017-02-03
        相关资源
        最近更新 更多