JDK 11 veroorzaakt NoClassDefFoundError AEM 6.5

Installeer de pakketten CXF extern om de kwestie van NoClassDefFoundError na een verbetering aan Java 11 met AEM 6.5x op te lossen.

Beschrijving description

De onderstaande fout wordt waargenomen in de logboeken na de upgrade naar Java 11 met AEM 6.5.x.

15.09.2020 00 :30: 20.868 *ERROR * [ FelixStartLevel ] org.apache.sling.scripting.sightbundle
org.apache.sling.scripting.siely:1.1.2.1_4_0 (557)
[ org.apache.sling.scripting.sistrongly.impl.engine.extension.use.JavaUseProvider(3410) ] : Fout tijdens
instantie van het implementatieobject (java.lang.NoClassDefFoundError:
jdk/internal/reflect/ConstructorAccessorImpl)
java.lang.NoClassDefFoundError: jdk/internal/reflect/ConstructorAccessorImpl
      op java.base/jdk.internal.misc.Unsafe.defineClass0(Native methode)
      op java.base/jdk.internal.misc.Unsafe.defineClass(Unsafe.java:1192)
      op java.base/jdk.internal.reflect.ClassDefiner.defineClass(ClassDefiner.java:63)
      op java.base/jdk.internal.reflect.MethodAccessorGenerator$1.run(MethodAccessorGenerator.java:400)
      op java.base/jdk.internal.reflect.MethodAccessorGenerator$1.run(MethodAccessorGenerator.java:394)
      op java.base/java.security.AccessController.doPrivileged(Native methode)

Veroorzaakt door: java.lang.ClassNotFoundException: Unable to load class
'jdk.internal.reflect.ConstructorAccessorImpl'
     op org.apache.felix.framework.BundleWiringImpl$1.loadClass(BundleWiringImpl.java:91)
     op java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
     om
org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1463)
      op org.apache.felix.framework.BundleWiringImpl.access$300(BundleWiringImpl.java:79)
      om
org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1982)
      op java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
… 111 gemeenschappelijke frames weggelaten

Resolutie resolution

Dit probleem is ontstaan doordat CXF-pakketten uit AEM zijn verwijderd en die extern moeten worden geïnstalleerd:

  1. Stop de AEM.

  2. Vind en open dit dossier in een tekstredacteur: crx-quickstart/conf/sling.properties .

  3. Deze regel wijzigen:
    Voor
    org.osgi.framework.bootDelegation=com.yourkit.*,

    ${org.apache.sling.launcher.bootDelegation}
    Na

    org.osgi.framework.bootDelegatie=sun.*,com.sun.*,jdk.internal.reflect,jdk.internal.reflect.*,com.yourkit.*,${org.apache.sling.launcher.bootDelegation}

  4. Start de AEM.

Nota : Zie ​ NoClassDefFoundError: jdk/internal/reflect/ConstructorAccessorImpl met Oracle JDK 11.0.3 ​ op ​ issues.apache.org ​ voor technische details over deze kwestie.

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