JDK 11 verursacht NoClassDefFoundError AEM 6.5
Installieren Sie die CXF-Pakete extern, um das Problem des NoClassDefFoundError nach einer Aktualisierung auf Java 11 mit AEM 6.5x zu beheben.
Beschreibung description
Der folgende Fehler tritt in den Protokollen nach der Aktualisierung auf Java 11 mit AEM 6.5.x auf.
15.09.2020 00:30:20.868 *ERROR* [ FelixStartLevel] org.apache.sling.scripting.sightly Bundle
org.apache.sling.scripting.sightly:1.1.2.1_4_0 (557)[ org.apache.sling.scripting.sightly.impl.engine.extension.use.JavaUseProvider(3410)]: Fehler während
Instanziierung des Implementierungsobjekts (java.lang.NoClassDefFoundError:
jdk/internal/mirror/ConstructorAccessorImpl)
java.lang.NoClassDefFoundError: jdk/internal/mirror/ConstructorAccessorImpl
unter java.base/jdk.internal.misc.Unsafe.defineClass0(Native Methode)
unter java.base/jdk.internal.misc.Unsafe.defineClass(Unsafe.java:1192)
unter java.base/jdk.internal.mirror.ClassDefiner.defineClass(ClassDefiner.java:63)
unter java.base/jdk.internal.mirror.MethodAccessorGenerator$1.run(MethodAccessorGenerator.java:400)
unter java.base/jdk.internal.mirror.MethodAccessorGenerator$1.run(MethodAccessorGenerator.java:394)
unter java.base/java.security.AccessController.doPrivileged(Native Methode)
…
Ursache: java.lang.ClassNotFoundException: Klasse kann nicht geladen werden
„jdk.internal.mirror.ConstructorAccessorImpl“
unter org.apache.felix.framework.BundleWiringImpl$1.loadClass(BundleWiringImpl.java:91)
unter java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
um
org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1463)
unter org.apache.felix.framework.BundleWiringImpl.access$300(BundleWiringImpl.java:79)
um
org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1982)
unter java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
… 111 gemeinsame Rahmen weggelassen
Auflösung resolution
Dieses Problem ist darauf zurückzuführen, dass CXF-Pakete aus AEM entfernt wurden und extern installiert werden müssen:
-
Stoppen Sie die AEM.
-
Suchen und öffnen Sie diese Datei in einem Texteditor: crx-quickstart/conf/sling.properties.
-
Diese Zeile ändern:
Vorher
org.osgi.framework.BootDelegation=com.meinekit.*,${org.apache.sling.launcher.BootDelegation}
Nachherorg.osgi.framework.BootDelegation=sun.*,com.sun.*,jdk.internal.mirror,jdk.internal.mirror.*,com.meinekit.*,${org.apache.sling.launcher.BootDelegation}
-
Starten Sie die AEM.
Hinweis: Siehe NoClassDefFoundError: jdk/internal/mirror/ConstructorAccessorImpl with Oracle JDK 11.0.3 auf issues.apache.org für technische Details zu diesem Problem.