簡単な OSGi テストバンドルを JBoss 7.1.1 にデプロイし、次のようにして Jacorb ORB を動的にインスタンス化しようとしました。
Class clazz = Class.forName("org.jacorb.orb.ORB");
私が得たのは
java.lang.ClassNotFoundException: org.jacorb.orb.ORB from [Module "deployment.test:1.0.0" from Service Module Loader]
私がすでにしたこと:
- モジュールがロードされるように、JBoss 構成
standalone.xml
で osgi-subsystem に capability を追加しました。私のテストバンドルのインストールが失敗するという問題は、すでに解決されています。<capability name="org.jacorb" startlevel="1"/>
org.jacorb
Dependencies
-Descriptor onを宣言しorg.jacorb
ましたMANIFEST.MF
(オプションの有無にかかわらず試しましたexport
):Dependencies: org.jacorb export
次の内容で
jboss-deployment-structure.xml
を myに追加しましたMETA-INF
<?xml version="1.0" encoding="UTF-8"?> <jboss-deployment-structure> <deployment> <dependencies> <module name="org.jacorb" /> </dependencies> </deployment> < /jboss-デプロイメント構造>
また、私は ClassLoader を使って実験を行い、ContextClassLoader がnull
. Class.forName()
しかし、最終的には、特定のクラスローダーを使用するように変更できないため、これを非テスト コードとして有効にすることはできません。
では、なぜこの ClassNotFoundException が発生するのでしょうか?
前もって感謝します
アレックス