2011-06-23 3 views
0

osgiでopenorbを使用しているベロウ例外が発生しています。
私はopenorb-1.3.1.jarとjdk1.6を使用しています。
jdkのopenorb-1.3.1.jarとrt.jarには、問題の原因となっている多くの重複が含まれていると思います。
たとえば、org.omg.CORBA.ORBクラスがrt.jarとopenorb-1.3.1.jarの両方に存在するため、エラーが発生しています。
問題を解決する正しい方法を提案してください。OSGIでのopenorbとjdkの競合

例外は、のようなorg.omg.CORBAパッケージの独自の内部コピーを使用していますが、独自のバンドルopenorbおそらく

java.lang.LinkageError: loader constraint violation: loader (instance of previosly initiated loading for a different type with name "org/omg/CORBA/ORB" at java.lang.ClassLoader.findBootstrapClass....

答えて

1

である - 私はいくつかの方法でopenorb呼び出していると推定 - からorg.omg.CORBAをインポートしましたシステムバンドル(rt.jarから取得することを意味します)。

さらに詳しい情報がなくても、1つの治療法を指定することは困難ですが、原則としてopenorbと他のすべてのバンドルには同じ場所からorg.omg.CORBAがロードされていることを確認してください。

  • ではなく、自身の内部コピーのrt.jarのからそのパッケージを取得するように、そのImport-Packageヘッダにorg.omg.CORBAを含める必要openorb;すなわち、いずれかがあることを意味しますOR ...
  • あなたのバンドルはopenorbによってエクスポートされたorg.omg.CORBAのコピーをインポートする必要があります。うまくいけばそれをバージョンなどでエクスポートしてください。あなたのバンドルが言うことができるように1.0.0。Import-Package: org.omg.CORBA;version="[1.0.0,2.0.0)"
0

OSGiコンテナとしてkarafを使用している場合。/karaf/etcにあるkaraf "jre.properties"を編集することができます。既にopenorbに入っているパッケージを削除してください

関連する問題