Project

General

Profile

バグ #558

UnsupportedClassVersionError がスローされて Java Servlet が起動しない

Added by みぞ @mizo0203 over 4 years ago. Updated over 4 years ago.

Status:
完了
Priority:
通常
Target version:
Start date:
11/23/2019
Due date:
% Done:

100%

Estimated time:

Description

# cat /usr/share/tomcat/logs/localhost.2019-11-23.log   
Nov 23, 2019 8:18:24 AM org.apache.catalina.core.StandardHostValve invoke
SEVERE: Exception Processing /fastest-finger-first/challenge
java.lang.UnsupportedClassVersionError: com/mizo0203/fastest/finger/first/ChallengeServlet has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0 (unable to load class com.mizo0203.fastest.finger.first.ChallengeServlet)
    at org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.java:3209)
    at org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:1373)
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1861)
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1735)
    at org.apache.catalina.core.StandardWrapper.servletSecurityAnnotationScan(StandardWrapper.java:1211)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:495)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:962)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:445)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1087)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:637)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:318)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Thread.java:748)
#1

Updated by みぞ @mizo0203 over 4 years ago

  • class file version 52.0: JRE 1.8
  • class file version 55.0: JRE 11

JRE 11 向けにビルドしたが、 Web サーバの Java 実行環境は JRE 1.8 であった。
そのため、上記エラーにより Java Servlet が起動できなかった。
ひとまず、現行通り JRE 1.8 向けにビルドすることでこの問題を回避する。

下記、参考情報

CentOS 7 に OpenJDK 11 をインストールする手順

# yum install java-11-openjdk
読み込んだプラグイン:fastestmirror, langpacks
Determining fastest mirrors
epel/x86_64/metalink                                                                                                                                                                                |  10 kB  00:00:00     
 * base: mirrors.cat.net
 * epel: mirrors.aliyun.com
 * extras: mirrors.cat.net
 * updates: mirrors.cat.net
base                                                                                                                                                                                                | 3.6 kB  00:00:00     
epel                                                                                                                                                                                                | 5.3 kB  00:00:00     
extras                                                                                                                                                                                              | 2.9 kB  00:00:00     
updates                                                                                                                                                                                             | 2.9 kB  00:00:00     
(1/3): epel/x86_64/primary_db                                                                                                                                                                       | 6.9 MB  00:00:00     
(2/3): epel/x86_64/updateinfo                                                                                                                                                                       | 1.0 MB  00:00:01     
(3/3): updates/7/x86_64/primary_db                                                                                                                                                                  | 4.2 MB  00:00:01     
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ java-11-openjdk.x86_64 1:11.0.5.10-0.el7_7 を インストール
--> 依存性の処理をしています: java-11-openjdk-headless(x86-64) = 1:11.0.5.10-0.el7_7 のパッケージ: 1:java-11-openjdk-11.0.5.10-0.el7_7.x86_64
--> トランザクションの確認を実行しています。
---> パッケージ java-11-openjdk-headless.x86_64 1:11.0.5.10-0.el7_7 を インストール
--> 依存性解決を終了しました。

依存性を解決しました

===========================================================================================================================================================================================================================
 Package                                                        アーキテクチャー                             バージョン                                                リポジトリー                                   容量
===========================================================================================================================================================================================================================
インストール中:
 java-11-openjdk                                                x86_64                                       1:11.0.5.10-0.el7_7                                       updates                                       212 k
依存性関連でのインストールをします:
 java-11-openjdk-headless                                       x86_64                                       1:11.0.5.10-0.el7_7                                       updates                                        39 M

トランザクションの要約
===========================================================================================================================================================================================================================
インストール  1 パッケージ (+1 個の依存関係のパッケージ)

総ダウンロード容量: 39 M
インストール容量: 164 M
Is this ok [y/d/N]: y
Downloading packages:
(1/2): java-11-openjdk-11.0.5.10-0.el7_7.x86_64.rpm                                                                                                                                                 | 212 kB  00:00:00     
(2/2): java-11-openjdk-headless-11.0.5.10-0.el7_7.x86_64.rpm                                                                                                                                        |  39 MB  00:00:04     
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
合計                                                                                                                                                                                       7.8 MB/s |  39 MB  00:00:04     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  インストール中          : 1:java-11-openjdk-headless-11.0.5.10-0.el7_7.x86_64                                                                                                                                        1/2 
  インストール中          : 1:java-11-openjdk-11.0.5.10-0.el7_7.x86_64                                                                                                                                                 2/2 
  検証中                  : 1:java-11-openjdk-11.0.5.10-0.el7_7.x86_64                                                                                                                                                 1/2 
  検証中                  : 1:java-11-openjdk-headless-11.0.5.10-0.el7_7.x86_64                                                                                                                                        2/2 

インストール:
  java-11-openjdk.x86_64 1:11.0.5.10-0.el7_7                                                                                                                                                                               

依存性関連をインストールしました:
  java-11-openjdk-headless.x86_64 1:11.0.5.10-0.el7_7                                                                                                                                                                      

完了しました!
# alternatives --config java

2 プログラムがあり 'java' を提供します。

  選択       コマンド
-----------------------------------------------
*+ 1           java-1.8.0-openjdk.x86_64 (/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.232.b09-0.el7_7.x86_64/jre/bin/java)
   2           java-11-openjdk.x86_64 (/usr/lib/jvm/java-11-openjdk-11.0.5.10-0.el7_7.x86_64/bin/java)

Enter を押して現在の選択 [+] を保持するか、選択番号を入力します:2
# java -version
openjdk version "11.0.5" 2019-10-15 LTS
OpenJDK Runtime Environment 18.9 (build 11.0.5+10-LTS)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.5+10-LTS, mixed mode, sharing)
#2

Updated by みぞ @mizo0203 over 4 years ago

  • Status changed from 進行中 to 完了
  • % Done changed from 40 to 100

Also available in: Atom PDF