OSGiサービスを使用する非OSGiコードの呼び出し

Liferay DXPの静的サービスユーティリティ(例:UserServiceUtilCompanyServiceUtilGroupServiceUtilなど)は、OSGiサービスを使用する非OSGiコードの例です。Service Builderは、下位互換性の目的としてのみ、それらを生成します。*ServiceUtilクラスを呼び出したい場合、または既存のコードがそのクラスを呼び出したい場合は、次の代替手段のいずれかを使用して代わりに*Serviceに直接アクセスします。

  • クラスがDeclarative Servicesコンポーネントの場合は、@Referenceアノテーションを使用して*Serviceクラスにアクセスします。

クラスがDeclarative Servicesコンポーネントではない場合は、ServiceTrackerを使用して*Serviceクラスにアクセスします。

Liferay DXPのサービスの状態はGogoシェルで確認できます。 scr:list Gogoシェルコマンドは、不満足な依存関係からの非アクティブなコンポーネントを含むすべてのDeclarative Servicesコンポーネントを表示します。 Service Builderサービスの不満足な依存関係を見つけるには、Dependency Managerのdependencymanager:dm wtfコマンドを使用します。これらのコマンドは、依存関係が不満足なためにアクティブ化されていないコンポーネントのみを表示することに注意してください。依存関係が不満足なため、サービスを待機している純粋なサービストラッカーは表示されません。

関連トピック

Detecting Unresolved OSGi Components

Felix Gogo Shell

OSGi Basics For Liferay Development

« ファイルを使用したモジュールコンポーネントの構成データベースの準備ができていないため、Liferay DXPの初期化に失敗しました »
この記事は役に立ちましたか?
0人中0人がこの記事が役に立ったと言っています