Ursachen und Abhilfemaßnahmen für die Ausnahme "ServletException: Fehler beim Instanziieren der Servlet-Klasse" beim Bereitstellen von Java-Apps

Situation, in der eine Ausnahme auftritt

Als ich in Eclipse eine Servlet-App erstellt und auf VPS bereitgestellt habe, ist die folgende Ausnahme aufgetreten.

javax.servlet.ServletException: Error instantiating servlet class [servlet.LoginServlet]

error.png

Ursache

Die JDK-Version von Eclipse und die JRE-Version von Tomcat stimmten nicht überein, sodass Tomcat keine Klassendateien ausführen konnte. (Wenn die Java-Version zur Kompilierungszeit zur Laufzeit die Java-Version überschreitet, scheint eine Ausnahme aufzutreten.)


Fehlerprotokoll

Ursache

java.lang.UnsupportedClassVersionError: 
servlet/LoginServlet 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 [servlet.LoginServlet])
 
~ Unten abgekürzt ~
JRE-Version Klassendateiversion
Java 8 52.0
Java 9 53.0
Java 10 54.0
Java 11 55.0
Java 12 56.0
Java 13 57.0
Java 14 58.0
Java 15 59.0

In diesem Fall wurde die App mit Version 55.0 (Java 11) kompiliert, es wurde jedoch versucht, sie mit Version 52.0 (Java 8) auszuführen.

Lösung

Aktualisieren Sie die Version auf der Tomcat-Seite oder senken Sie die Version auf der Eclipse-Seite. (Ich habe beschlossen, diesmal die Eclipse-Seite zu wechseln.)   Wenn Sie vom Eclipse-Fenster zu `Fenster> Einstellungen `wechseln, wird der Einstellungsbildschirm angezeigt. Wenn Sie zur Seite "Java> Compiler" wechseln, gibt es ein Element mit der Bezeichnung "Compiler-Konformitätsstufe" des JDK. Ändern Sie dies in "1.8". eclipse設定.png

Referenz

https://stackoverflow.com/questions/47457105/class-has-been-compiled-by-a-more-recent-version-of-the-java-environment http://www.ne.jp/asahi/hishidama/home/tech/java/version.html https://jpn.itlibra.com/article?id=21118

Recommended Posts

Ursachen und Abhilfemaßnahmen für die Ausnahme "ServletException: Fehler beim Instanziieren der Servlet-Klasse" beim Bereitstellen von Java-Apps
[Ruby On Rails] Ursachen und Abhilfemaßnahmen für ActionView :: Template :: Error (ActiveStorage :: InvariableError) (Hypothese / Überprüfung)
Fehlerprotokolle und Ausnahmebehandlung, die häufig im Java-Bereich angezeigt werden
[Anfänger] Befehle und Kenntnisse, die für die Fehlerbehebung bei der Bereitstellung von AWS hilfreich sein können
[Java] Vorsichtsmaßnahmen beim Referenzieren in einer übergeordneten Klasse und beim Instanziieren in einer untergeordneten Klasse