Openshift在Tomcat 7(JBoss EWS 2.0)盒式磁带中更新java 7至8

Openshift在Tomcat 7(JBoss EWS 2.0)盒式磁带中更新java 7至8,java,openshift,openshift-cartridge,Java,Openshift,Openshift Cartridge,我是Openshift新手,我已经为我的spring boot web应用程序使用Tomcat 7(JBoss EWS 2.0)盒带创建了一个服务器实例 最初,web应用程序使用JDK7,在Openshift上运行良好。现在,为了进行一些增强,我们必须切换到JDK8 我试着在谷歌上搜索关于将JAVA\u HOME更改为JDK8的信息,我尝试了大多数解决方案,但我无法让它工作 尝试解决方案1:在app root/runtime/repo/.openshift/action\u hooks/下创建

我是Openshift新手,我已经为我的spring boot web应用程序使用Tomcat 7(JBoss EWS 2.0)盒带创建了一个服务器实例

最初,web应用程序使用JDK7,在Openshift上运行良好。现在,为了进行一些增强,我们必须切换到JDK8

我试着在谷歌上搜索关于将
JAVA\u HOME
更改为JDK8的信息,我尝试了大多数解决方案,但我无法让它工作

  • 尝试解决方案1:在
    app root/runtime/repo/.openshift/action\u hooks/
    下创建
    start
    文件,包含以下内容

    #/bin/bash
    导出JAVA_HOME=/etc/alternations/JAVA_sdk_1.8.0
    导出路径=$JAVA_HOME:$PATH

    此外,该文件具有
    +x
    权限

  • 尝试解决方案2:在
    app root/runtime/repo/.openshift/markers
    jbossews/template/.openshift/markers
    下创建
    java8
    标记

上述解决方案不起作用。另一个选项是DIY盒式磁带,它可能会工作,但我不想创建新的应用程序并将所有东西都移动到那里

编辑

下面是目录结构

请注意,我使用open shift UI创建了此应用程序,而不是使用
rhc
命令

请引导我


谢谢

听起来像是糟糕的计划:在编写需要Java-8的代码之前,您应该确保您的平台支持Java-8。从Openshift文档中:

3.2。JBoss Enterprise Application Platform 6支持的Java环境 JBoss Enterprise Application Platform 6需要Java 6或Java 7。支持的Java环境列表可在中找到。开发需要Java开发工具包(JDK),运行JBoss企业应用程序平台需要Java运行时环境(JRE)

为了启用java8,我不得不进行一些“欺骗”,因为“java8”标记似乎不起作用。查看JbossEWS盒式磁带源:

function export_java_home() {
  if marker_present "java7"; then
    export JAVA_HOME=$OPENSHIFT_JBOSSEWS_JDK7
  else
    export JAVA_HOME=$OPENSHIFT_JBOSSEWS_JDK6
  fi
}
因此,我的解决方案/解决方法是:

  • 将您的
    OPENSHIFT\u JBOSSEWS\u JDK7
    环境变量设置为指向jdk8而不是JDK7:
rhc env set OPENSHIFT_JBOSSEWS_JDK7=“/etc/alternations/java_sdk_1.8.0”-YOURAPPNAME
  • java7
    标记添加到
    .openshift/markers
    目录中

您的答案不正确:问题是关于Tomcat 6/7(JBoss EWS 2.0)盒式磁带,而不是JBoss Enterprise Application Platform 6。声明中明确表示支持
Java8
。这是openshift的在线版本吗?假设是这样,那么为什么不直接连接到服务器(ssl)并进行标记并重新启动服务器呢。首先确保它能正常工作。你能告诉我们你的应用程序存储库的目录结构吗?
.openshift/
目录应位于根文件夹中。例如,检查存储库。那么基本上您运行的是自定义盒带吗?不,我指的是原始JBossEWS盒带: rhc env set OPENSHIFT_JBOSSEWS_JDK7="/etc/alternatives/java_sdk_1.8.0" -a YOURAPPNAME