Tomcatの 公式ページ では、Tomcat 7はJava 8をサポートしていると述べています。これをダウンロードしてJava 8で実行すると動作します。
ただし、OpenshiftではTomcat 7(JBoss EWS 2.0)です。 このWebページ では、EWS 2.0 はJava 8 をサポートしていません。 Java 8アプリケーションをOpenshift(Tomcat 7)にデプロイすると、機能しません。
どうして?
OpenShiftのTomcat 7にJava 8をインストールしようとしました: https://stackoverflow.com/a/23895161/2442133 しかし、それは私のために働いていません。エラーがあります:
org.springframework.beans.factory.BeanCreationException: Error creating bean
with name 'org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping':
Initialization of bean failed; nested exception is
org.springframework.beans.factory.CannotLoadBeanClassException: Error loading
class [pl.xxx.controller.HomeController] for bean with name 'homeController'
defined in file [/var/lib/openshift/xxx/app-
root/runtime/dependencies/jbossews/webapps/web1/WEB-
INF/classes/xxx/controller/HomeController.class]: problem with class file or
dependent class; nested exception is Java.lang.UnsupportedClassVersionError:
xxx/controller/HomeController : Unsupported major.minor version 52.0 (unable to
load class xxx.controller.HomeController)
Unsupported major.minor version 52.0
は、Javaバージョンが間違っていると言います(Java 7はJava 8を導入しました)。
Unsupported major.minor version 52.0
エラーは、Java 8クラスファイルがあり、Java <= 7 JREがあることを示しています。そのため、Tomcat用のJava 8のインストールにまったく成功していません。 Tomcat構成で何かを調整してJava 8を使用する必要がある場合があります。