問題タブ [apache-felix]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
4 に答える
6262 参照

java - OSGi(Apache Felix)にサービスを登録するにはどうすればよいですか?

コードからApacheFelixを起動し、独自のバンドルを登録することに成功しました。

OSGIプロジェクト間の次の関係が必要です。

[OsgiInterface]--インターフェイスを提供します。

[OsgiModuleA]--(バンドル)は、これらのインターフェースの実装を提供します。
知っている[OsgiInterface]

[OsgiUsage]--1つ以上のバンドルを利用します。
知っている[OsgiInterface][OsgiModuleA]

現在、インターフェースを実装するサービスの登録に問題があります。manifest.mfファイルのエントリが間違っていると思います。

追加情報

誰かが私の前の質問のコードを見ることができれば、それはとても親切です

この質問を参照させてください:

パッケージにインターフェイスを提供する3番目のプロジェクトOsgiInterfacesを作成しようとしました。このプロジェクトは、OsgiModuleAOsgiUsageの両方で知られています。SomeInterfaceinterfaces

OsgiModuleA: エントリにmanifest.mf追加の値が追加されました。さらに、アクティベーターに提供されるインスタンスがあります。interfacesImport-Package:SomeInterface

バンドルが開始されると、次のことNoClassDefFoundErrorが発生します。インターフェースSomeInterfaceが不明です。

編集:

これで、エラーが修正されたので、最も重要な部分は次のとおりでした。

これがなければ、私は得ClassCastExceptionました。

0 投票する
1 に答える
658 参照

maven-2 - バンドルへの推移的な依存関係?

bundleMavenアーティファクトのパッケージとして使用すると、推移的な依存関係に関するすべての情報が失われるようです。したがって、アーティファクト A がアーティファクト B に依存し、B がバンドルとしてパッケージ化されている場合、A は B が持つ Maven 依存関係を認識しません。これにより、この情報を必要とする A の POM で使用される Maven プラグイン (maven-dependency-plugin や maven-eclipse-plugin など) で多くの問題が発生します。私が見つけた唯一の回避策は、依存関係をバンドルに埋め込むことです (felix バンドル プラグインの構成で Embed-Dependencies を使用します)。私はそれをしたくありませんが、それらを独自のファイルに保管したいと思います。別の回避策はありますか?

0 投票する
1 に答える
469 参照

netbeans - Netbeansとosgiバンドルの開発

netbeans6.8とfelix2.0.4を使用してOSGIプロジェクトを開始しようとしています。誰かが私にすぐに始めるためのヒントやリンクを提供できますか?

前もって感謝します。

0 投票する
1 に答える
1308 参照

java - OSGi デプロイメントの実行をプロファイリングする方法は?

いくつかのハードウェア制限のあるデバイスにデプロイされるアプリケーション用の OSGi バンドルの開発を開始しています。そのバンドルの実行をプロファイルして、最終的なデバイスの依存関係に常に適合するようにする方法を知りたいです。各バンドルが使用しているメモリ量を把握し、ボトルネックを特定し、同じサービスの異なる実装を比較するためのプロファイラーがあれば便利です。

OSGi デプロイメント用のプロファイラーはありますか、それとも一般的な Java プロファイラーを使用する必要がありますか?

開発のために、Apache felix で Pax ランナーを使用してバンドルを実行し、maven を使用してプロジェクトの依存関係とビルドを管理しています。

0 投票する
1 に答える
3337 参照

osgi - OSGiHTTPサービスを使用したWicketWebアプリケーションの開始

OSGi HTTPサービスのFelix実装を使用してWicketアプリケーションを開始しようとしています。そのため、パラメーターを使用WicketServletしてサービスを登録するだけです。applicationClassName

また、Felixホワイトボードの実装を使用してWebサービスをServlet1つとして登録してみました。

どちらの場合も、Pax RunnerとFelix(mvn package install pax:run -Dframework=felix -Dprofiles=log,config)を使用してデプロイすると失敗しますが、例外はClassLoader:に関連しているようです。

バンドル内のすべてをエクスポートしようとしましたが、同じように動作します。

最も奇妙なことは、Equinox()を使用してデプロイすると完全に機能することmvn package install pax:run -Dframework=felix -Dprofiles=log,configです。

目に見える問題のようですが、修正方法がわかりません。何か間違ったことをしているのでしょうか。WicketServletアプリケーションのインスタンス化を制御するために拡張を試みる必要がありますか?または、アプリケーションファクトリを使用していますか?

更新:または、アプリケーションファクトリを使用していますか?

applicationFactoryClassNameパラメータを設定しようとしましたが、ContextParamWebApplicationFactory.class.getName()役に立ちませんでしたが、それでもfelixで失敗し、equinoxで動作していました。

どんな光でも大歓迎です。

0 投票する
2 に答える
8675 参照

tomcat - OSGi Web エコシステム全体を理解するのに問題がある

私は Java と OSGi の世界全体にかなり慣れていないため、OSGi Web アプリケーションのエコシステムを理解するのに苦労しています。

より正確に言うと、私は現在、生態系のすべての部分がどのように相互に関連しているかを理解しようとしています:

  • OSGi フレームワーク (例: Apache Felix、Equinox、Knoplerfish)
  • OSGi ランタイム (Spring DM Server、Pax Runner、Apache Karaf など)
  • Web Extender (Pax Web Extender、Spring Web Extender など)
  • Web コンテナ (Apache Tomcat、Jetty など)

彼らの関係についての私の実際の理解を視覚的に表現するために、この画像をチェックしてください。

代替テキスト

私の知る限り、OSGi フレームワークは OSGi 仕様の実装です。ランタイムは、OSGi 仕様の上にロギングなどの追加機能を追加するディストリビューションです。OSGi と Tomcat のような Web コンテナーのクラスパス メカニズムにはいくつかの違いがあるように思われるため、何らかのトランスレーターが必要です。この部分は「Web Extender」によって処理されます。

私のためにこのすべてを明確にしてくれませんか?私はすべてを正しく理解していますか?

0 投票する
1 に答える
745 参照

osgi - Knopflerfishパッケージ

私は現在、Knopflerfish、Equinox、およびFelixがOSGi4.2にどの程度準拠しているかを示すマトリックスを作成しています。

これまでのところ、Knopflerfishのドキュメント(リンク1リンク2)を見て、コアとCompendiumの仕様が実際にどの程度実装されているかを把握しました。

セキュリティレイヤー宣言的サービスについて一貫性のないステートメントがいくつかありますが、コア仕様は完全に実装されているようです。

私が不思議に思うのは、すべてのCompendium仕様のどれだけが実装されているかです。

  • リモートサービス
  • ログサービス
  • Httpサービス
  • デバイスアクセス
  • 構成管理サービス
  • メタタイプサービス
  • プリファレンスサービス
  • ユーザー管理サービス
  • ワイヤー管理サービス
  • IOコネクタサービス
  • 初期プロビジョニング
  • UPnPデバイスサービス
  • 宣言型サービス
  • イベント管理サービス
  • 展開管理者
  • 自動構成
  • アプリケーション管理者
  • DMT管理サービス
  • 管理サービスの監視
  • 外国出願アクセス
  • ブループリントコンテナ
  • トラッカー
  • XMLパーサーサービス
  • ポジション
  • 測定と状態
  • 実行環境

詳細については、Knopflerfishのソースコードをダウンロード(ダウンロードページ)して見てみました。仕様の一部は、OSGi Alliance(org.osgi。*)によって提供される「元の」フレームワークを介して実装されているようです。

1つの例はUPnPパッケージです。

代替テキストhttp://img6.imageshack.us/img6/5853/screenshot20100403at212.png

これは、Knopflerfishによって直接実装されていない欠落部分が、「元の」OSGiフレームワークを介して追加されることを意味しますか?

そして、これはFelixやEquinoxのような他のフレームワークにも当てはまりますか?

0 投票する
2 に答える
2703 参照

java - OSGi バンドルでの com.sun.management.OperatingSystemMXBean の使用

アプリケーションの CPU やメモリなどを監視するために使用されていたレガシー コードがあり、バンドルに変換したいと考えています。今、このバンドルを開始すると、不平を言う

JVM の統計情報にアクセスするために、OperatingSystemMXBean を使用していました。

私の質問は、このクラスを OSGI コンテナー内で使用できるかということです。または、アプリケーションを監視するために他の方法を使用する必要があります。OSGi より前のノードのパフォーマンス数値を取得するために、Web フロントエンドからアプリケーションへの RMI 呼び出しを行っていました。

0 投票する
1 に答える
2594 参照

java - felixでのOSGIクラスキャスト例外

私はosgiにかなり慣れていないので、機能的な概念実証を一緒に取得しようとしています。

セットアップでは、私の共通APIは、バンドルアクティベーターのないcommon-api.jarというクリエイティブな名前のバンドルで作成されますが、すべてのインターフェイスをエクスポートします。この状況で重要なのはDatabaseService.javaです。

次に、systemx-database-serviceという2番目のバンドルがあります。これにより、データベースサービスインターフェイスが実装されます。これは、実装バンドルのアクティベーターの場合と同様に正常に機能します。データベースへの接続をテストし、いくつかの調停値を選択します。他のバンドルで利用できるようにしたいサービスも登録します。

基本的な考え方は、データベースサービスのサービス参照を探すときに、SystemDatabaseServiceの実装を取得することです。

私が検査サービスを行うとき、それを出力します:

これは、テストバンドルでこれを行うと次のように信じるようになります。

DatabaseService.classのインスタンスを取り戻す必要がありますが、残念ながらそのような運はありません。サービスが見つからないようです。ここで私に固執する私の話は奇妙になります。

行くところがないと思って、私はこの怪物を書きました:

これで実際にサービス参照を見ることができますが、このエラーが発生します

実装が明らかにインターフェースを実装しているので、これはクレイジーです!

どんな助けでもいただければ幸いです。私はosgiの考え方に非常に慣れていないので、ここでの私のアプローチ全体に欠陥がある可能性があることを覚えておいてください。

ああ。マニフェストが必要な場合は投稿できます。そして、私はmaven-bnd-pluginを使用してfelixでビルドおよび実行しています。

ありがとう

ニコ

0 投票する
3 に答える
10226 参照

java - NoClassDefFoundError: HttpClient 4 (APACHE)

私は apache http commons 4 を使用しています。netbeans のクラスパスに httpcore-4.0.1.jar と httpclient-4.0.1.jar の両方を追加しました。エラーが発生しています:
java.lang.NoClassDefFoundError: org/apache/http/impl/client/DefaultHttpClient

私のコードは次のとおりです。助けてください。