Ausfall des RDE-Services nach der AEM-Bereitstellung aufgrund fehlender OSGi-Bundles

Die Bereitstellung von Code in der RDE-Umgebung von Adobe Experience Manager as a Cloud Service (AEMaaCS) führt zu einem Service-Ausfall, wenn OSGi-Pakete von Drittanbietern wie io.jsonwebtoken aufgrund strengerer Einschränkungen für die API-Region nicht aufgelöst werden können. Um dies zu beheben, betten Sie die erforderlichen JAR-Dateien mit Bundle-ClassPath oder -conditionalpackage in Ihr Projekt ein, stellen Sie sie mithilfe von aio aem:rde:install erneut bereit und überprüfen Sie, ob alle Abhängigkeiten erfolgreich aufgelöst werden.

Beschreibung description

Umgebung

  • Produkt: Adobe Experience Manager as a Cloud Service (AEMaaCS) - Sites
  • context: RDE (Rapid Development Environment)
  • Tools: aio aem:rde:install Befehl für die Bereitstellung

Hinweis: Standardmäßige Cloud-Instanzen und lokale Bereitstellungen bleiben davon unberührt.

Problem/Symptome

  • Die RDE-Umgebung reagiert nach der Bereitstellung mit aio aem:rde:install nicht mehr.

  • Die -Instanz zeigt eine Meldung „Service Ausfall“ an.

  • Das Problem lässt sich nicht durch Neustarten oder Zurücksetzen der Instanz beheben.

  • Fehlerprotokolle zeigen nicht aufgelöste OSGi-Bundle-Abhängigkeiten von Drittanbietern im Zusammenhang mit io.jsonwebtoken.

  • Abhängigkeiten werden in lokalen und standardmäßigen Cloud-Umgebungen aufgelöst, schlagen in der RDE jedoch aufgrund strengerer Einschränkungen für die API-Region fehl.

  • Fehlerprotokoll-Auszug:

    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)))

Auflösung resolution

Gehen Sie wie folgt vor, um dieses Problem zu beheben:

  1. Überprüfen Sie die von der RDE erzwungenen Einschränkungen für die API-Region. Diese Einschränkungen beschränken die Sichtbarkeit von Paketen und blockieren den Zugriff auf Pakete von Drittanbietern wie io.jsonwebtoken.

  2. Betten Sie erforderliche Drittanbieterbibliotheken in Ihr Projekt ein. Verwenden Sie entweder -conditionalpackage oder Bundle-ClassPath, um die folgenden JAR-Dateien einzuschließen:

    • lib/jjwt-api-0.11.2.jar
    • lib/jjwt-impl-0.11.2.jar
    • lib/jjwt-jackson-0.11.2.jar
  3. Fügen Sie Ihrer bnd.bnd-Datei die folgenden Anweisungen hinzu:

    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. Stellen Sie das aktualisierte Paket mithilfe von aio aem:rde:install bereit. Bestätigen Sie, dass alle Abhängigkeiten aufgelöst werden und der Service-Ausfall nicht mehr auftritt.

  5. Testen Sie die Bereitstellung sowohl in der Autoren- als auch in der Veröffentlichungsumgebung, um Stabilität sicherzustellen.

Verwandtes Lesen

Verwenden der schnellen Entwicklungsumgebung in AEM

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