2012-05-07 8 views
3

私はJBossAS7で作業しています。 私のアプリケーションには、OSGIモジュールと大きなOSGI以外の部分があります。 JNDIを介してosgi以外のサブシステムでlook-up osgiサービスを試しましたが、JNDIコンテキストには存在しません。 JBOSS 7 - Osgi Bundles not present in JNDI TREEで同様の問題が見つかりましたが、そこには解決策が見つかりませんでした。 JBossチームがこの機能をまだ実装していない場合、どうすればこの問題を解決できますか?JNDI経由でOSGIサービスを参照できません

私は手動JNDIコンテキストに私のサービスを追加しようとしたが、例外が発生しましたJNDIコンテキストが読み取り専用であるため、(https://issues.jboss.org/browse/AS7-421による)

答えて

6

をそれはまだ完全に統合されていないのです(ステータスを確認するJBOSGI-81を監視)、しかし、私はあなたを考えますApache Aries JNDI OSGiバンドルを使用してJBoss AS7にデプロイすることで、この作業を行うことができます。これを行うには

、展開、および開始

JNDIバンドルは、それが持ついくつかの静的に設定することができないと文句を言うだろうNamingManagerではなく、AS7 JNDIがそれを処理するので無視することができます。例えばあなたが

osgi:service/org.foo.SomeInterface 

osgi:servicelist 

タイプの検索を行うことができるはずインストール上記のバンドルに ...

osgi:service/org.osgi.service.startlevel.StartLevel 

私はちょうどAS7 7.1.2でそれを試してみましたが、それは私の作品...

一つのことに:あなたは、フレームワークによって登録された開始レベルサービスをルックアップするために以下のことを試みることができますルックアップしているエンティティが、別のAS7/MSCモジュールまたはOSGiバンドルで定義されたインタフェースを実装している場合、このインタフェースにキャストできるようにするには、コンシューマに可視性があることを確認する必要があります。 OSGiの世界ではパッケージをインポートするだけですが、AS7モジュール(warファイルなど)では依存関係マニフェストヘッダーを追加することでこれを実現できます。

+0

私はマニフェストに依存関係にモジュールを追加しましたが、例外 org.jboss.modules.ModuleNotFoundExceptionを得た:モジュール[モジュール名]:メインはローカルモジュールローダの@ 19e3118aに見つからない(ルーツ:[jboss_directory] ​​\モジュール) – Ivan

+0

それは不明ですあなたの設定が正確に何であるか、それがどんな依存関係になっているのかを私に教えてください。おそらく、あなたのシナリオをJBoss OSGiフォーラム[https://community.jboss.org/ja/jbossosgi](https://community.jboss.org/ja/jbossosgi)]に詳しく掲載したいと思うかもしれません。上記の説明では、私は単にAriesバンドルをインストールして起動しました。モジュールの依存関係は、JNDI経由でルックアップしたオブジェクトを特定のAPIにキャストしたい場合に関係します。 –

+0

このソリューションが7.1.1.Finalで動作していることを確認できます。ありがとうございました! – eis

関連する問題