0

我有一场在 EAP 6.4.x 下运行良好的战争(x 目前为 8,但也在 6 和 4 下,依此类推到 6.4.0)。

WAR 具有一些简单的 JMS 客户端功能,可以将消息添加到远程机器上的队列中。目标 QBroker 是 ActiveMQ 5.8.0。

我使用 5.8.0 RAR 设置到远程代理的适配器/连接器,然后只是普通的 JMS 客户端东西将消息推送到 q。一切都很好。

将“端口”从 6.4.x 开始到 7.0.1;我对 amq 5.8.0 RAR 的东西很感兴趣。对于初学者——不打算使用任何属于 EAP 7 的 AMQ Artemis 东西(还)。最初,我想让我的 WAR 在 7.0 下工作,并且尽可能少地进行更改——因此保留 RAR 很重要。

在 6.4.x 下,我使用独立配置文件并通过 CLI 部署 RAR,如下所示:

./jboss-cli.sh --connect -c "deploy --name=${AMQ_DEPLOY_NAME} --runtime-name=${AMQ_RAR_FNAME} ${_TMPDIR}/${AMQ_RAR_FNAME}"

然后我使用 cli 为队列设置资源适配器、连接 def/factory 和 admin-object。

按照与 EAP 7.0.1 相同的过程,如果我使用独立配置文件,我会得到

java.lang.NoClassDefFoundError: javax/jms/JMSException

尝试启用使用 RAR 的 WAR 时出现问题。好的,所以当我使用standalone-full时,我得到了这种错误的各种变体:

2016-07-18 15:48:10,867 ERROR [org.jboss.as.controller.management-operation] (Controller Boot Thread) WFLYCTL0013: Operation ("add") failed - address: ([
    ("subsystem" => "messaging-activemq"),
    ("server" => "default")
]) - failure description: {
    "WFLYCTL0180: Services with missing/unavailable dependencies" => ["jboss.messaging-activemq.default is missing [jboss.http-upgrade-registry.default]"],
    "WFLYCTL0288: One or more services were unable to start due to one or more indirect dependencies not being available." => {
        "Services that were unable to start:" => ["jboss.messaging-activemq.default.jms.manager"],
        "Services that may be the cause:" => [
            "jboss.http-upgrade-registry.default",
            "jboss.naming.context.java.JmsXA"
        ]
    }
}

上面的消息表明messaging-activemq 的东西(或内置的artemis 的东西)有问题。

在这两种情况下,我都将我的 EJB 默认资源适配器设置为上面创建的 RAR。

那么我在这个设置中缺少什么?

关于我的环境的一些细节:

War 中没有任何 jboss/wildfly 特定的 DD。

我没有将 AMQ RAR 部署为静态模块(我也不想)——它只是我部署的一个 jar——就像其他 JAR(用于 DB 驱动程序)或 WARS、EJB jar 等。

cat version.txt 红帽 JBoss 企业应用平台 - 版本 7.0.1.GA

java -version java version "1.8.0_92" Java(TM) SE Runtime Environment (build 1.8.0_92-b14) Java HotSpot(TM) 64-Bit Server VM (build 25.92-b14, mixed mode)

uname -a Linux wellandf3 4.6.4-301.fc24.x86_64 #1 SMP 2016 年 7 月 12 日星期二 11:50:00 UTC x86_64 x86_64 x86_64 GNU/Linux

4

1 回答 1

0

这是由 ClassNotFoundException 引起的 NoClassDefFoundError 吗?如果是这种情况,我会尝试将 javax.jms.api 添加为全局模块。

于 2016-10-12T17:36:35.707 回答