web-dev-qa-db-ja.com

Tomcat 7はJava 8?

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を導入しました)。

11
mkczyk

Unsupported major.minor version 52.0エラーは、Java 8クラスファイルがあり、Java <= 7 JREがあることを示しています。そのため、Tomcat用のJava 8のインストールにまったく成功していません。 Tomcat構成で何かを調整してJava 8を使用する必要がある場合があります。

8
user207421

TomcatをWindowsでサービスとして実行する場合、Tomcatが使用するJREを次のコマンドで変更する必要があります。

Tomcat7w.exe //ES/<your_service_name>

次のダイアログが表示されます:

enter image description here

「デフォルトを使用」がチェックされているか、正しい「Java仮想マシン」が使用されていることを確認してください。

5
Jens