問題タブ [ipojo]

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 投票する
1 に答える
2569 参照

android - Android SLF4J: NoClassDefFoundError android.util.Log

既存の OSGi/Felix/iPOJO アプリを Windows から Android に移植しています。アプリは SLF4J を使用しています。slf4j-android をバンドルとしてデプロイしました。ただし、ロガーをインスタンス化しようとしている行でjava.lang.NoClassDefFoundError: android.util.Logを取得しています。

SLF4J のドキュメントによると、クラスパスに slf4j-android jar を配置するだけでよく、それ以上の構成は必要ありません。( http://www.slf4j.org/android/ )

私のロガーは次のように宣言されています:

スタック トレースが不平を言っている行は次のとおりです。

完全な方法は次のとおりです。

ロガーを参照すると、android.util.Log で NoClassDefFoundError が発生する理由はありますか?

完全なスタック トレース:

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

ipojo - iPOJO - 注入されたサービスを使用する場合の NullPointer

サービスを定義しました:

そして実装:

別のクラス (実際にはActivatorクラス) では、次のようにサービスを参照します。

しかし、私はNullPointerException

Arch Gogo をインストールした結果は次のとおりです。

私は何が欠けていますか?

(バイトコード操作は Ant タスクによって行われます)

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

java - Eclipse 内で BndTools を使用して iPojo をセットアップするにはどうすればよいですか?

Eclipse 内のコンポーネント宣言に iPojo アノテーションを使用しようとしています。問題は、XML および変更されたクラスを生成しているときに、bnd-ipojo-plugin がプラグインのクラスパスで注釈を見つけられないことです。

Eclipse で次のようなエラーが発生します。

「-plugins」プロパティを含むように .bnd ファイルを変更しました。

私の Eclipse プロジェクトには、BuildPath にもすべての iPojo jar があります。誰か提案はありますか?または、iPojo を Eclipse に統合するためのより良い方法はありますか?

編集 1

ワークスペースを完全に再構築し、変数-plugin-pluginpath変数を build.bnd ファイルに移動しました。

これは次のようになります。

これで、すべてのエラーがなくなり、失敗することなくビルドされます。ただし、XML ファイルはまだ生成されていません。build.bnd ファイルを変更する以外に別の手順はありますか?

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

java - org.osgi.* のパッケージのインポートは別の方法で処理されますか?

OSGi では、バージョン番号とバージョン範囲を使用する場合、定義された依存関係の解決プロセス、つまりパッケージのインポートとエクスポートはかなり厳密です。バージョン 1.2.3 の一部のパッケージ インポートで、1.2.3 を含む範囲の対応するエクスポートが見つからない場合、バンドルを解決または開始できません。これはいい。

ただし、これはコア パッケージには適用されないようですorg.osgi.framework。Equinox (3.8.0) と Apache Felix (4.0.3) の両方の現在のバージョンはorg.osgi.framework,version=1.7.0、エクスポートされたパッケージの 1 つとして定義されます。ただし、このパッケージの特定の下位バージョンを必要とするバンドル (例: Import-Package: org.osgi.framework;version=1.3) は、引き続きこの新しいバージョンに解決されます。バンドルが解決されないことを期待します。

この動作はどのように説明できますか? これは OSGi 実装の誤動作ですか? コア OSGi パッケージを解決するときに例外がありませんか? または、Karaf がここで邪魔になっています (Apache Karaf でこれをテストしました。以下を参照してください)。

バージョンを明示的に宣言したくないこと、およびバージョンが完全に解決可能な範囲になることを知っています。ただし、そのようなインポートを定義する私の管理下にないバンドルがあります (つまり、iPOJO、以下を参照)。


セットアップの詳細: それぞれ Equinox または Felix を有効にして、Karaf 2.3.2 および 2.3.3 でこれをテストしました。私がテストに使用したデモ バンドルは githubで見つけることができます。これはそのままビルドでき、新しい Karaf コンテナーにデプロイすると失敗が表示されます。私がこれを発見した理由は、コア iPOJO バンドルが範囲ではなくそのような明示的なバージョンを定義しているためです。これを Karaf 機能記述子に追加し、Karaf Features Maven Pluginを使用して機能のエクスポート/インポートの整合性を検証しようとしましたが、失敗しました。

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

java - Apache Felix iPOJO イベント管理ハンドラーを使用する

Event Admin Handlersを使用したい。

次のコードを実行しようとしています。

しかし、エラーがあります:

私が理解しているように、Publisher コンポーネントのインスタンスを取得できません。「Apache Felix iPOJO Event Admin Handler (1.8.0)」バンドルが有効になっています。

使用する:

  • アパッチ フェリックス 4.2.1
  • org.apache.felix.ipojo.annotations (1.11.0)
  • org.apache.felix.ipojo.api (1.11.0)
  • org.apache.felix.ipojo.handler.eventadmin (1.8.0)

なにが問題ですか?どうも。


これはバンドルリストです:

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

osgi - サービス コンシューマ ( iPOJO ) のサービス プロパティへのアクセス

iPOJO では、サービス コンシューマーでサービス プロパティ ( getProperty(key) など) を読み取る方法はありますか? パブリッシャーは非常に簡単ですが、コンシューマーではフィルターしか使用できないようです。

ありがとう

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

java - ユーザーの要求に応じて ipojo コンポーネント インスタンスをプログラムで作成する

Apache Felix 4.2.1 iPOJO 1.11.0 を使用します。

ユーザーが要求したときに、コンポーネント インスタンスをプログラムで作成する必要があります。しかし、静的ファクトリメソッドで非静的フィールドを使用することはできません。

1)私が正しく理解していれば、 @Requires アノテーションを持つフィールドは静的にすることはできません。プロパティを取り、新しいコンポーネント インスタンスを受け取るファクトリ メソッドを作成する方法は?

2) そうするのは普通のことですか?

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

java - JavaデスクトップアプリのようにApache felix Ipojoを埋め込む

ダブルクリックで開くことができる Java アプリのような IPOJO アプリを作成するにはどうすればよいですか?

私はいくつかのコードを持っています:

IPOJOバンドルを開始する

エラーなしで実行されますが、「開始済み」のみが出力されます。「Hello world」は出力されません。この問題を解決するために私を助けてください。