Problem

Wenn Sie den Code im AEM installieren, wird das OSGi-Framework-Bundle aktualisiert, das einen Konflikt im AEM verursacht. In den Protokollen sehen wir ähnliche Meldungen wie die folgenden für das benutzerdefinierte Bundle:

19.04.2017 15:09:11.606 *INFO* [OsgiInstallerImpl] org.apache.sling.audit.osgi.installer Updated bundle custom-bundle-name [496] from resource TaskResource(url=jcrinstall:/apps/customapp/install/custom-bundle-name-1.2.0-SNAPSHOT.jar, entity=bundle:custom-bundle-name, state=INSTALL, attributes=[org.apache.sling.installer.api.tasks.ResourceTransformer=:9035:9042:9011:, Bundle-SymbolicName=custom-bundle-name, Bundle-Version=1.2.0.SNAPSHOT], digest=1492632551274)
19.04.2017 15:09:11.607 *INFO* [OsgiInstallerImpl] org.apache.sling.audit.osgi.installer Refreshing 1 bundles: [custom-bundle-name [496]]
19.04.2017 15:09:11.608 *INFO* [OsgiInstallerImpl] org.apache.sling.audit.osgi.installer Waiting up to 90 seconds for bundles refresh
19.04.2017 15:09:11.609 *INFO* [OsgiInstallerImpl] org.apache.sling.audit.osgi.installer Done refreshing 1 bundles
19.04.2017 15:09:11.609 *INFO* [OsgiInstallerImpl] custom-bundle-nameBundleEvent RESOLVED
19.04.2017 15:09:11.609 *INFO* [OsgiInstallerImpl] custom-bundle-name BundleEvent STARTING
19.04.2017 15:09:11.609 *INFO* [OsgiInstallerImpl] custom-bundle-name BundleEvent STARTED
19.04.2017 15:09:11.610 *INFO* [OsgiInstallerImpl] org.apache.sling.audit.osgi.installer Started bundle custom-bundle-name [496]
19.04.2017 15:09:11.627 *INFO* [FelixDispatchQueue] org.apache.felix.framework FrameworkEvent PACKAGES REFRESHED

Umgebung

AEM 6.x

Ursache

1. Eine mögliche Ursache ist, dass das Paket keine Exporte, Importe oder Code enthält. Dies verursacht bekanntermaßen das Problem.
2. Das benutzerdefinierte Paket könnte Java-Pakete auf Systemebene exportieren, die bereits exportiert und von einigen Core-AEM-, Apache Felix- oder Sling-Paketen verwendet werden.

Lösung

Leeres OSGi-Paket

Wenn Sie ein leeres Paket bereitstellen, beenden Sie es. Es ist nicht zulässig, dies zu tun, sofern es sich um ein Paket mit Ressourcen handelt.

Systemebene-Export

Wenn Sie eine Bibliothek exportieren, die vom System (AEM, sling, Apache Felix, Oak usw.) verwendet wird, ändern Sie Ihr benutzerdefiniertes Paket, um die Bibliothek mit dem Tag „org.apache.felix maven-bundle-plugin-<Embed-Dependency>“ einzubetten. Sie können auswählen, ob die Bibliothek dem <Export-Package>-Tag hinzugefügt werden soll oder nicht. Sie können weiterhin auf die Bibliothek innerhalb des Codes im Paket zugreifen. Sie wird jedoch nicht in alle anderen Paketen exportiert.

Dieses Werk unterliegt den Bedingungen der Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License.  Twitter™- und Facebook-Beiträge fallen nicht unter die Bedingungen der Creative Commons-Lizenz.

Rechtliche Hinweise   |   Online-Datenschutzrichtlinie