問題タブ [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.
java - iPOJO コンポーネントのインスタンス構成を取得するには?
次のように作成する iPOJO コンポーネント インスタンスがあります。
上記でインスタンス化しているコンポーネント内で、辞書の "dic" 値を取得するにはどうすればよいですか?
それは次のようなものでしょうか?
またはそれは:
java - ローダー制約違反: ローダー (x のインスタンス) は以前に名前 y の別のタイプのロードを開始しました
操作の一部を簡素化するために、Felix iPOJO を「MyFramework」と呼ばれるフレームワークにラップしています。
MyFramework を使用すると、次のようになります。
1- サービスとして「hello」メッセージの印刷を提供する iPOJO コンポーネントである「HelloService」バンドル。
2- 上記の「HelloService」コンポーネントをインスタンス化し、その開始メソッドでそのサービスを取得する別の iPOJO コンポーネントである「MyFrameworkComposite」バンドル。
3- start メソッドで「MyFrameworkComposite」コンポーネントをインスタンス化する単なる OSGI バンドルであるスターター バンドル。
4- iPOJO に必要なバンドルと上記の 3 つのバンドルをロードする Java アプリケーション。
Java アプリケーションを実行すると、次のエラー出力が表示されます。
エラーは次の行で正確に発生します: (この行は私のフレームワーク コードにあります):
org.apache.felix.ipojo.handlers.providedserviceprovidedServiceDescription は、パッケージの一部である ProvidedServiceDescription タイプです。
次のように、「MyFrameworkComposite」コンポーネントで「Hello Service」コンポーネントサービスを取得しようとすると、エラーが発生する行に到達します。
クラスパスにライブラリが重複している場合に発生する可能性があるさまざまなリソースを読みました。しかし、そうではないことは確かです。原因は何ですか?
osgi - iPOJO Composite で分離はどのように機能しますか?
iPOJO は、プリミティブ型コンポーネントのインスタンスを含むコンポジットを作成するメカニズムを提供します。iPOJO が、複合サブインスタンスによって提供されるサービスを複合の外部からアクセスされないように分離するメカニズムを理解することに興味があります。
たとえば、次の構成があるとします (iPOJO API を使用):
コンポーネント「prov」が というサービス インターフェイスを実装しているとしますHelloService。このサービスが分離されているとはどういう意味ですか?
サービス参照を使用して外部バンドル (コンポジットの一部ではない) からサービスにアクセスしようとした場合、次のことを意味しますか?
スコープがコンポジットの外にあるため、この参照は本当に失敗するのでしょうか?
コンポジット内のコンポーネントに、コンポジット外で公開されたサービスへの参照が含まれている場合はどうなるでしょうか? この参照も失敗しますか?
注: 今のところ、インポートまたはエクスポートされたサービスには興味がありません。
osgi - iPOJO @Requires が null です
iPOJO と @Requires アノテーションを使用すると、消費者に注入されません。
消費者:
プロバイダー: