JDK 11 causa l’errore NoClassDefFoundError AEM 6.5

Installare i pacchetti CXF esternamente per risolvere il problema del  NoClassDefFoundError dopo un aggiornamento a Java 11 con AEM 6.5x.

Descrizione description

L’errore seguente viene rilevato nei registri dopo l’aggiornamento a Java 11 con AEM 6.5.x.

15.09.2020 00:30:20,868 *ERRORE* [ FelixStartLevel] org.apache.sling.scripting.sight bundle org.apache.sling.scripting.sight:1.1.2.1_4_0 (557)
[ org.apache.sling.scripting.sight.impl.engine.extension.use.JavaUseProvider(3410)] : errore durante la creazione di un’istanza dell’oggetto di implementazione (java.lang.NoClassDefFoundError: jdk/internal/refl/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.refl.ClassDefiner.defineClass(Class) Definer.java:63) in java.base/jdk.internal.reflect.MethodAccessorGenerator$1.run(MethodAccessorGenerator.java:400) in java.base/jdk.internal.reflect.MethodAccessorGenerator$1.run(MethodAccessorGenerator.java:394) in java.base/java.security.AccessController.doPrivileged(Native Method) … Causato da: java.lang.ClassNotFoundException: impossibile caricare la classe 'jdk.internal.reflect.ConstructorAccessorImpl' in org.apache.felix.framework.BundleWiringImpl$1.loadClass(BundleWiringImpl.java:91) in java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521) in org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation undleWiringImpl.java:1463) in org.apache.felix.framework.BundleWiringImpl.access$300(BundleWiringImpl.java:79) in org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1982) in java.base/java.lang.ClassLoader.loadClass(ClassLoader.java):521 … 111 fotogrammi comuni omessi

Risoluzione resolution

Questo problema è dovuto al fatto che i pacchetti CXF sono stati rimossi dall’AEM e che devono essere installati esternamente:

  1. Fermate l'AEM.

  2. Trova e apri il file in un editor di testo: crx-quickstart/conf/sling.properties.

  3. Modifica questa riga: Prima
    org.osgi.framework.bootdelegation=com.yourkit.*,

    ${org.apache.sling.launcher.bootdelegation}
    Dopo

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

  4. Avvia l'AEM.

Nota: vedi NoClassDefFoundError: jdk/internal/reflect/ConstructorAccessorImpl con Oracle JDK 11.0.3 il issues.apache.org per informazioni tecniche su questo problema.

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