Sie müssen Ihre Anwendungen auf die neueste unterstützte Laufzeitversion aktualisieren, um weiterhin Sicherheitsupdates zu erhalten und Anspruch auf technischen Support zu haben.
Das Upgradeprozess einer vorhandenen Anwendung hängt von der Laufzeitversion ab, die Ihre Anwendung derzeit verwendet:
Java 8: Sie müssen Ihre App zur neuesten unterstützten Java-Version migrieren. Java 8 hat das Ende des Supports am 31. Januar 2024 erreicht. Ihre vorhandenen Java 8-Anwendungen werden weiterhin ausgeführt und erhalten Traffic. Sie können jedoch keine neuen Anwendungen bereitstellen oder vorhandene Anwendungen aktualisieren, die Laufzeiten verwenden, für die der Support abgelaufen ist.
Java-Laufzeiten der zweiten Generation (nach Ende der Unterstützung): Wenn Sie ein Upgrade auf eine unterstützte Java-Version durchführen möchten, gehen Sie so vor:
Aktualisieren Sie die
app.yaml-Datei, indem Sie eine Java-Version angeben, mit der Ihre App ausgeführt werden soll. Beispiel:runtime: javaVERSIONDabei ist VERSION die
MAJOR-Versionsnummer. Wenn Sie beispielsweise die neueste Java-Version (Java 21) verwenden möchten, geben Sie21an. Weitere Informationen finden Sie in der Java-Laufzeitübersicht.Wenn Sie gebündelte Legacy-Dienste verwenden, müssen Sie Ihre Anwendungen aktualisieren, dass sie auf einem der Folgenden ausgeführt werden:
Java Enterprise Edition 10 (EE10 – Standard, empfohlen): Java EE10 unterstützt keine
javax.servlet.*APIs und erfordert die Aktualisierung Ihrer Anwendungen und Drittanbieterabhängigkeiten, um neuere Java-Artefakte wie NamespaceJakartazu verwenden.Java Enterprise Edition 8 (EE8): Mit Java EE8 können Sie
javax.servlet.*APIs verwenden. Sie müssen jedoch kleinere Konfigurationsänderungen an der Dateiappengine-web.xmlvornehmen.Alle Optionen finden Sie unter Upgrade auf Java 21 für gebündelte Legacy-Dienste.
Java 17:
Diese Version wird von der App Engine unterstützt. So führen Sie ein Upgrade auf die neueste unterstützte Version durch:
Aktualisieren Sie die
app.yaml-Datei, indem Sie eine Java-Version angeben, mit der Ihre App ausgeführt werden soll. Beispiel:runtime: javaVERSIONDabei ist VERSION die
MAJOR-Versionsnummer. Wenn Sie beispielsweise die neueste Java-Version (Java 21) verwenden möchten, geben Sie21an. Weitere Informationen finden Sie in der Java-Laufzeitübersicht.Wenn Sie gebündelte Legacy-Dienste verwenden, müssen Sie Ihre Anwendungen aktualisieren, dass sie auf einem der Folgenden ausgeführt werden:
Java Enterprise Edition 10 (EE10 – Standard, empfohlen): Java EE10 unterstützt keine
javax.servlet.*APIs und erfordert die Aktualisierung Ihrer Anwendungen und Drittanbieterabhängigkeiten, um neuere Java-Artefakte wie NamespaceJakartazu verwenden.Java Enterprise Edition 8 (EE8): Mit Java EE8 können Sie
javax.servlet.*APIs verwenden. Sie müssen jedoch geringfügige Konfigurationsänderungen an der Dateiappengine-web.xmlvornehmen.
Alle Optionen finden Sie unter Upgrade auf Java 21 für gebündelte Legacy-Dienste.
Upgrade auf Java 21 für gebündelte Legacy-Dienste
Java-Laufzeitkompatibilität
In der folgenden Tabelle sehen Sie, welche Java-Versionen mit Ihren Servlet-Versionen kompatibel sind:
| Enterprise Edition (EE) | Java-Version | Servlet | Kompatibilität |
|---|---|---|---|
| EE7 | 11 | 2.5 oder 3.1 | Für EE7 gibt es keinen Community-Support. Java 11 hat das Ende des Supports erreicht. Wir empfehlen ein Upgrade Ihrer App auf die aktuelle Version von Java. |
| EE7 | 17 | 2.5 oder höher | Für EE7 gibt es keinen Community-Support. Wir empfehlen, Ihre App auf EE8 umzustellen. |
| EE8 | 17/21 | 2.5 und höher | Java EE8 ist abwärtskompatibel mit Java EE6 und höher. Weitere Informationen finden Sie unter Upgrade auf Java 21 in EE8. |
| EE10 | 17/21 | 6.0 empfohlen Java 21 ist standardmäßig für die Ausführung von EE10 konfiguriert. | Wenn Sie Java EE10 verwenden möchten, müssen Sie die Servlets und Abhängigkeiten Ihrer Anwendung so aktualisieren, dass der Jakarta-Namespace enthalten ist. Weitere Informationen finden Sie unter Java 21 in EE10 upgraden. |
Upgrade auf Java 21 in EE10
Wenn Sie Java 21 in Enterprise Edition 10 (EE10) verwenden möchten, müssen Sie die Servlets und Abhängigkeiten Ihrer Anwendung in Ihren Maven- und Gradle-Dateien so aktualisieren, dass der Namespace Jakarta enthalten ist:
Ändern Sie die Versionsnummer in der Konfigurationsdatei
web.xmlinversion=6.0. Beispiel:<web-app xmlns="https://jakarta.ee/xml/ns/jakartaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/web-app_6_0.xsd" version="6.0"> ... </web-app>Benennen Sie die Servlets und Abhängigkeiten Ihrer Anwendung von
javax.servlet.*injakarta.servlet.*um:import jakarta.servlet.ServletException; import jakarta.servlet.annotation.WebServlet; import jakarta.servlet.http.Cookie; import jakarta.servlet.http.HttpServlet; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; @WebServlet(name = "viewer", urlPatterns = {"/view"}) public class MyServlet extends HttpServlet { ......Aktualisieren Sie je nach
Jakarta-Namespace die verbleibenden Anwendungs-Drittanbieter-Abhängigkeiten auf neuere Java-Artefakte.Fügen Sie der Datei
appengine-web.xmldie folgende Systemeigenschaft hinzu:<?xml version="1.0" encoding="utf-8"?> <appengine-web-app xmlns="http://appengine.google.com/ns/1.0"> <runtime>java21</runtime> <!-- or java17 --> <system-properties> <property name="appengine.use.EE10" value="true"/> </system-properties> <app-engine-apis>true</app-engine-apis> </appengine-web-app>Optional: Java 21 unterstützt virtuelle Threads. Wenn Sie virtuelle Threads aktivieren möchten, fügen Sie der Datei
appengine-web.xmldas Attributappengine.use.virtualthreadsim Tagsystem-propertieshinzu.
Upgrade auf Java 17 oder 21 in EE8
Sie können javax.servlet.* APIs unter Java EE8 weiterhin ohne größere Änderungen an der Anwendungskonfiguration verwenden, da EE8 eine Abwärtskompatibilität für Java EE6 und höher bietet. Zur Ausführung Ihrer Anwendungen auf Java EE8 müssen Sie ein neues system-properties-Tag in Ihrer appengine-web.xml-Datei mit dem nicht standardmäßigen app.engine.use.EE8 Konfiguration deklarieren.:
<?xml version="1.0" encoding="utf-8"?>
<appengine-web-app xmlns="http://appengine.google.com/ns/1.0">
<runtime>java21</runtime> <!-- or java17 -->
<system-properties>
<property name="appengine.use.EE8" value="true"/>
</system-properties>
<app-engine-apis>true</app-engine-apis>
</appengine-web-app>
Optional: Java 21 unterstützt virtuelle Threads. Wenn Sie virtuelle Threads aktivieren möchten, fügen Sie die Eigenschaft appengine.use.virtualthreads in das Tag system-properties ein. Beispiel:
<property name="appengine.use.virtualthreads" value="true"/>