0

MXBean を含む sar アーカイブを構築し、JBoss 7 にデプロイしようとしています。

最近まで、MXBean クラスで他のライブラリのクラスを参照する際に問題がありました。SAR アーカイブのどこに配置しても JBoss がそれらのライブラリをロードしないためです。

META-INF に配置された jboss-deployment-structure.xml ファイルを介して SAR のクラスパスを設定できることがわかりました。このファイルの私のバージョンは次のようになります。

<jboss-deployment-structure>
<deployment>
    <resources>
        <resource-root path="management.api.jar" />
    </resources>
</deployment>

「management.api.jar」のクラスがロードされます。

私が現在直面している問題は次のとおりです。MXBean のインターフェースが management.api.jar に格納され、それを実装するクラスが直接 SAR アーカイブにある場合、JBoss が jboss-service.xml を読み取って試行するときmxbean を作成するために、インターフェイス (management.api.jar 内) を指す ClassNotFoundException が生成されます。したがって、外部 jar からのクラスは正常にロードされますが (jar からクラスを参照するメソッドを実際に呼び出してこれをテストし、動作しました)、JBoss が Bean を登録するときに、クラスパス全体を通過しないようです。 jboss-deployment-structure.xml で定義されているとおり。

私は現在立ち往生しており、これは JBoss がクラスのロードを処理する方法のバグであると思われます。誰かがこれを回避する方法を知っている場合 (インターフェイスを jar から取り出して SAR アーカイブに直接配置する以外に、これは「api」のアイデア全体を壊す原因となります) 教えてください。

ありがとう!

4

1 に答える 1