Dernière mise à jour le
2 mai 2021
Le JDK 11 provoque une erreur NoClassDefFoundError AEM 6.5
Problème
L’erreur ci-dessous est observée dans les logs 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)] : Error during instantiation of the implementation object (java.lang.NoClassDefFoundError: jdk/internal/reflect/ConstructorAccessorImpl) java.lang.NoClassDefFoundError: jdk/internal/reflect/ConstructorAccessorImpl at java.base/jdk.internal.misc.Unsafe.defineClass0(Native Method) at java.base/jdk.internal.misc.Unsafe.defineClass(Unsafe.java:1192) at java.base/jdk.internal.reflect.ClassDefiner.defineClass(ClassDefiner.java:63) at java.base/jdk.internal.reflect.MethodAccessorGenerator$1.run(MethodAccessorGenerator.java:400) at java.base/jdk.internal.reflect.MethodAccessorGenerator$1.run(MethodAccessorGenerator.java:394) at java.base/java.security.AccessController.doPrivileged(Native Method) ... Caused by: java.lang.ClassNotFoundException: Unable to load class 'jdk.internal.reflect.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 common frames omitted
Solution
Ce problème est dû au fait que les packages CXF ont été supprimés d’AEM et que vous devez les installer en externe.
- Arrêtez AEM.
- Recherchez et ouvrez ce fichier dans un éditeur de texte : crx-quickstart/conf/sling.properties
- Modifiez la ligne suivante :
Avant :
org.osgi.framework.bootdelegation=com.yourkit.*, ${org.apache.sling.launcher.bootdelegation}
Après :
org.osgi.framework.bootdelegation=sun.*,com.sun.*,jdk.internal.reflect,jdk.internal.reflect.*,com.yourkit.*,${org.apache.sling.launcher.bootdelegation}
4. Démarrez AEM
Remarque :
Voir ici pour des détails techniques sur ce problème.
Adobe
Recevez de l’aide plus rapidement et plus facilement
Nouvel utilisateur ?