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 :

  1. Arrêtez l'AEM.

  2. Recherchez et ouvrez ce fichier dans un éditeur de texte : crx-quickstart/conf/sling.properties.

  3. Modifiez cette ligne :
    Avant
    org.osgi.framework.bootdelegation=com.votkit.*,

    ${org.apache.sling.launcher.bootdelegation}
    Après

    org.osgi.framework.bootdelegation=sun.*,com.sun.*,jdk.internal.reflète,jdk.internal.reflète.*,com.yourkit.*,${org.apache.sling.launcher.bootdelegation}

  4. 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.

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