AEM 6.1 降级 Java 版本和快速入门显示 UnsupportedClassVersionError major.minor version 52.0

Sur*_*ala -1 aem

我们在装有 Java 1.8 的 Windows 机器上使用 AEM 6.1 快速入门。

为了与其他团队保持一致,在卸载 Java 8 并保留 JAVA_HOME 和 PATH 变量以反映 Java 的新(降级)版本并使用“crx-quickstart.txt”运行 AEM 之后,我们不得不将 Java 版本降级到 1.7.0_79 。 jar”文件,AEM 正常启动,但默认启动页面未加载并显示以下异常:

java.lang.UnsupportedClassVersionError: org/apache/jsp/libs/granite/core/components/login/login_jsp : Unsupported major.minor version 52.0

RequestURI=/libs/granite/core/content/login.html

Servlet= /libs/granite/core/components/login/login.jsp
ApacheSling/2.4 (jetty/9.2.9.v20150224, Java HotSpot(TM) 64-Bit Server VM 1.7.0_79, Windows 7 6.1 amd64) 
Run Code Online (Sandbox Code Playgroud)

对我们有用的解决方案之一是重命名或删除“crx-quickstart”文件夹..并启动 AEM,因为 AEM 将使用正确版本的 Java 重新编译所有内容,并且一切正常。但是有没有其他方法.. 不重命名/删除 crx-quickstart 文件夹?

Sur*_*ala 5

以下是解决方案的更详细说明:

症状:升级或降级计算机上的 Java 版本后,发现 AEM 上未加载页面,甚至主登录页面也未加载。

造成这种情况的原因: 当 AEM 启动时,它使用 PC 上安装的 Java 版本编译 java/jsp 文件。当 Java 版本发生变化时,新文件应由安装的版本编译,所有引用都必须更新,但 AEM 6.1 上存在问题(这可能在 Service Pack 中修复)。

解析度:

注意:请在执行此操作之前备份您的 AEM 实例

  • 转到本地主机:4502/system/console/configMgr
  • 如果页面打开,请以“管理员”身份登录
    • 转到菜单 > OSGI > 捆绑包 [ http://localhost:4502/system/console/bundles]
    • 找到这个“Apache Sling Commons FileSystem ClassLoader (org.apache.sling.commons.fsclassloader)”并记下 BundleID(对我来说是218
    • 停止 AEM
    • 在 Windows 资源管理器上,转到安装 AEM 的路径.. $path\aem-61-author\crx-quickstart\launchpad\felix\bundle218\data
    • 删除它下面的文件夹。
    • 重新启动 AEM .. 这应该可以解决问题。
  • 如果上面的页面打不开,
    • (假设 bundle-id 是 218)
    • 停止 AEM
    • 在 Windows 资源管理器上,转到安装 AEM 的路径.. __ $path\aem-61-author\crx-quickstart\launchpad\felix\bundle218\data __
    • 删除它下面的文件夹。
    • 重新启动 AEM .. 这应该可以解决问题。