Le JDK 11 provoque NoClassDefFoundError AEM 6.5
Installez les packages CXF en externe pour résoudre le problème de NoClassDefFoundError après une mise à niveau vers Java 11 avec AEM 6.5x.
Description description
L’erreur ci-dessous est observée dans les journaux après la mise à niveau vers Java 11 avec AEM 6.5.x.
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)] : erreur pendant
instanciation de l’objet d’implémentation (java.lang.NoClassDefFoundError:
jdk/internal/reflète/ConstructorAccessorImpl)
java.lang.NoClassDefFoundError: jdk/internal/think/ConstructorAccessorImpl
at java.base/jdk.internal.misc.Unsafe.defineClass0 (méthode native)
at java.base/jdk.internal.misc.Unsafe.defineClass(Unsafe.java:1192)
at java.base/jdk.internal.think.ClassDefiner.defineClass(ClassDefiner.java:63)
at java.base/jdk.internal.think.MethodAccessorGenerator$1.run(MethodAccessorGenerator.java:400)
at java.base/jdk.internal.think.MethodAccessorGenerator$1.run(MethodAccessorGenerator.java:394)
at java.base/java.security.AccessController.doPrivileged(méthode native)
…
Causé par : java.lang.ClassNotFoundException : impossible de charger la classe
'jdk.internal.think.ConstructorAccessorImpl'
at org.apache.felix.framework.BundleWiringImpl$1.loadClass(BundleWiringImpl.java:91)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
at
org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1463)
at org.apache.felix.framework.BundleWiringImpl.access$300(BundleWiringImpl.java:79)
at
org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1982)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
111 images courantes omises
Résolution resolution
Ce problème est dû au fait que les packages CXF ont été supprimés d’AEM et qu’ils doivent être installés en externe :
-
Arrêtez l'AEM.
-
Recherchez et ouvrez ce fichier dans un éditeur de texte : crx-quickstart/conf/sling.properties.
-
Modifiez cette ligne :
Avant
org.osgi.framework.bootdelegation=com.votkit.*,${org.apache.sling.launcher.bootdelegation}
Aprèsorg.osgi.framework.bootdelegation=sun.*,com.sun.*,jdk.internal.reflète,jdk.internal.reflète.*,com.yourkit.*,${org.apache.sling.launcher.bootdelegation}
-
Démarrez l’AEM.
Remarque : Voir NoClassDefFoundError: jdk/internal/think/ConstructorAccessorImpl with Oracle JDK 11.0.3 sur issues.apache.org pour obtenir des détails techniques sur ce problème.