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 のものは (まだ) 使用しません。最初はできるだけ変更を加えずに 7.0 で WAR を動作させたいと考えています。そのため、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 を使用してリソース アダプタ、接続定義/ファクトリ、およびキューの管理オブジェクトを設定します。

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 (DB ドライバー用) や WARS、EJB jar などのように、デプロイしたのは単なる jar です。

cat version.txt Red Hat JBoss Enterprise Application Platform - バージョン 7.0.1.GA

java -version java バージョン "1.8.0_92" Java(TM) SE ランタイム環境 (ビルド 1.8.0_92-b14) Java HotSpot(TM) 64 ビット サーバー VM (ビルド 25.92-b14、混合モード)

uname -a Linux wellandf3 4.6.4-301.fc24.x86_64 #1 SMP Tue Jul 12 11:50:00 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

4

1 に答える 1

0

これは ClassNotFoundException が原因の NoClassDefFoundError ですか? その場合は、javax.jms.api をグローバル モジュールとして追加してみます。

于 2016-10-12T17:36:35.707 に答える