O JDK 11 causa NoClassDefFoundError AEM 6.5
Instale os pacotes CXF externamente para resolver o problema de NoClassDefFoundError após uma atualização para o Java 11 com AEM 6.5x.
Descrição description
O erro abaixo é observado nos registros após a atualização para o Java 11 com AEM 6.5.x.
15.09.2020 00:30:20.868 *ERRO* [
FelixStartLevel]
org.apache.sling.scripting.sightly pacote
org.apache.sling.scripting.sightly:1.1.2.1_4_0 (557)[
org.apache.sling.scripting.sightly.impl.engine.extension.use.JavaUseProvider(3410)]
: Erro durante
instanciação do objeto de implementação (java.lang.NoClassDefFoundError:
jdk/internal/mirror/ConstructorAccessorImpl)
java.lang.NoClassDefFoundError: jdk/internal/mirror/ConstructorAccessorImpl
em java.base/jdk.internal.misc.Unsafe.defineClass0(Método nativo)
em java.base/jdk.internal.misc.Unsafe.defineClass(Unsafe.java:1192)
em java.base/jdk.internal.refletion.ClassDefiner.defineClass(ClassDefiner.java:63)
em java.base/jdk.internal.refletion.MethodAccessorGenerator$1.run(MethodAccessorGenerator.java:400)
em java.base/jdk.internal.refletion.MethodAccessorGenerator$1.run(MethodAccessorGenerator.java:394)
em java.base/java.security.AccessController.doPrivileged(Método Nativo)
…
Causado por: java.lang.ClassNotFoundException: Não é possível carregar a classe
'jdk.internal.mirror.ConstructorAccessorImpl'
em org.apache.felix.framework.BundleWiringImpl$1.loadClass(BundleWiringImpl.java:91)
em java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
em
org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1463)
em org.apache.felix.framework.BundleWiringImpl.access$300(BundleWiringImpl.java:79)
em
org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1982)
em java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
… 111 quadros comuns omitidos
Resolução resolution
Esse problema ocorre porque os pacotes CXF foram removidos do AEM e eles precisam ser instalados externamente:
-
Pare o AEM.
-
Localize e abra este arquivo em um editor de texto: crx-quickstart/conf/sling.properties.
-
Modifique esta linha:
Antes
org.osgi.framework.bootdelegation=com.yourkit.*,${org.apache.sling.launcher.bootdelegation}
Depoisorg.osgi.framework.bootdelegation=sun.*,com.sun.*,jdk.internal.refletion,jdk.internal.refletion.*,com.yourkit.*,${org.apache.sling.launcher.bootdelegation}
-
Comece o AEM.
Observação: consulte NoClassDefFoundError: jdk/internal/mirror/ConstructorAccessorImpl com o Oracle JDK 11.0.3 em issues.apache.org para obter detalhes técnicos sobre esse problema.