AEM 6.5 migrate JDK 8 to 11

johnny_degreef

21-04-2020

Hi,

 

We have an on-prem AEM 6.3 installation running with Oracle Java 8.

We are now performing in-place upgrade to AEM 6.5. For the upgrade procedure we use the same java version 8.

Once the in-place upgrade is done, we want to restart our AEM 6.5 instance with Java 11.

This does not seem to work as we are getting a lot of errors related to "(java.lang.NoClassDefFoundError: jdk/internal/reflect/MethodAccessorImpl)". Reverting back to Java 8 also doesn't work anymore. It seems that when we try to boot the AEM 6.5 instance with Java 11, it corrupts the launchpad. 

 

My question is: how to upgrade Java version after an AEM in-place upgrade?  Is this a supported flow or will AEM 6.5 only work with Java 11 when it was initially installed with Java 11? So not in case of an in-place upgrade?

 

Secondly, in this announcement https://experienceleaguecommunities.adobe.com/t5/adobe-experience-manager/adobe-announcement-oracle-..., it is mentioned that we can download an Adobe licensed Java 11 from package share. But we can't find that package back on package share.

 

It is also very unfortunate that we can't use OpenJDK11. Or has Adobe changed their opinion on this?

 

Thanks for your answers.

 

AEM 6.5 JDK11

Accepted Solutions (1)

Accepted Solutions (1)

aemmarc

Employee

21-04-2020

The JDK Downloads are hosted on the Adobe Software Distribution page

https://experience.adobe.com/#/downloads/content/software-distribution/en/general.html

 

Screen Shot 2020-04-21 at 9.18.29 PM.png

 

OpenJDK is still not supported.

 

Generally you'd do the upgrade from 6.3 to 6.5 on JDK8.

Then it's start AEM with Java11.

 

If you're running into an issue please log a Daycare ticket and provide the logs as well as the everything under /crx-quickstart/conf 

The sling.properties file could have some weird things going on that prevents start up. 

 

Again generally, there's something amiss with the org.osgi.framework.bootdelegation value in the sling.properties.

 

Try : 

org.osgi.framework.bootdelegation=sun.,com.sun.,jdk.internal.reflect,jdk.internal.reflect.*

 

That should clean up these : 

java.lang.NoClassDefFoundError: jdk/internal/reflect/ConstructorAccessorImpl
java.lang.NoClassDefFoundError: jdk/internal/reflect/MethodAccessorImpl

 

 

Answers (0)