OSGi バンドルが見つからないことが原因で、AEMのデプロイ後に RDE サービスが停止する

Adobe Experience Manager as a Cloud Service(AEMaaCS) RDE 環境にコードをデプロイすると、io.jsonwebtoken などのサードパーティの OSGi バンドルが、API 地域の厳しい制約のために解決できない場合に、サービスが停止します。 この問題を修正するには、Bundle-ClassPath または -conditionalpackage を使用して必要な JAR ファイルをプロジェクトに埋め込み、aio aem:rde:install を使用して再デプロイし、すべての依存関係が正常に解決されることを検証します。

説明 description

環境

  • Product:Adobe Experience Manager as a Cloud Service(AEMaaCS) – Sites
  • コンテキスト :RDE (迅速な開発環境)
  • ツール :デプロイメントの aio aem:rde:install コマンド

メモ :標準クラウドインスタンスとローカルデプロイメントは影響を受けません。

問題/症状

  • aio aem:rde:install を使用したデプロイメント後、RDE 環境が応答しなくなります。

  • インスタンスに「サービス停止」メッセージが表示される。

  • インスタンスを再起動またはリセットしても、問題は解決しません。

  • エラーログに、io.jsonwebtoken に関連する未解決のサードパーティ OSGi バンドル依存関係が表示されます。

  • 依存関係はローカルおよび標準クラウド環境で解決されますが、RDE では API 地域の制約が厳しいので失敗します。

  • エラーログ抜粋:

    Unable to resolve fpaec-aem-base-components.core 645: missing requirement fpaec-aem-base-components.core [ 645] osgi.wiring.package; (&(osgi.wiring.package=io.jsonwebtoken)(version>=0.11.0)(!(version>=1.0.0)))

解決策 resolution

この問題に対処するには、次の手順に従います。

  1. RDE によって適用される API リージョン制約を確認します。 これらの制約により、パッケージの表示が制限され、io.jsonwebtoken などのサードパーティバンドルへのアクセスがブロックされます。

  2. 必要なサードパーティライブラリをプロジェクトに埋め込みます。 -conditionalpackage または Bundle-ClassPath を使用して、次の JAR ファイルを含めます。

    • lib/jjwt-api-0.11.2.jar
    • lib/jjwt-impl-0.11.2.jar
    • lib/jjwt-jackson-0.11.2.jar
  3. 次の手順を bnd.bnd ファイルに追加します。

    code language-none
    Bundle-ClassPath: .,
      lib/jjwt-api-0.11.2.jar,
      lib/jjwt-impl-0.11.2.jar,
      lib/jjwt-jackson-0.11.2.jar
    
    code language-none
    -conditionalpackage: \
      io.jsonwebtoken;version="0.11.2", \
      io.jsonwebtoken.security;version="0.11.2"
    
  4. aio aem:rde:install を使用して、更新されたパッケージをデプロイします。 すべての依存関係が解決され、サービスの停止が発生しなくなったことを確認します。

  5. オーサー環境とパブリッシュ環境の両方でデプロイメントをテストし、安定性を確保します。

関連資料

AEMの ​ 迅速な開発環境の使用方法 ​

recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f