JDK 11 causa l’errore NoClassDefFoundError AEM 6.5
Installa i pacchetti CXF esternamente per risolvere il problema di 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 *ERROR* [
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
creazione di un'istanza dell'oggetto di implementazione (java.lang.NoClassDefFoundError:
jdk/internal/reflect/ConstructorAccessorImpl)
java.lang.NoClassDefFoundError: jdk/internal/reflect/ConstructorAccessorImpl
at java.base/jdk.internal.misc.Unsafe.defineClass0(Metodo nativo)
in 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)
…
Causato da: java.lang.ClassNotFoundException: impossibile caricare la classe
'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)
a
org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1463)
at org.apache.felix.framework.BundleWiringImpl.access$300(BundleWiringImpl.java:79)
a
org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1982)
at 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:
-
Fermate l'AEM.
-
Trovare e aprire il file in un editor di testo: crx-quickstart/conf/sling.properties.
-
Modifica questa riga:
Prima di
org.osgi.framework.bootdelegation=com.yourkit.*,${org.apache.sling.launcher.bootdelegation}
Dopoorg.osgi.framework.bootdelegation=sun.*,com.sun.*,jdk.internal.reflect,jdk.internal.reflect.*,com.yourkit.*,${org.apache.sling.launcher.bootdelegation}
-
Avvia l'AEM.
Nota: per informazioni tecniche su questo problema, consulta NoClassDefFoundError: jdk/internal/refl/ConstructorAccessorImpl con l'Oracle JDK 11.0.3 in issues.apache.org.