In diesem Dokument wird beschrieben, wie Sie eine Java 8-Anwendung als JAR
-Datei neu verpacken, um sie in den Java 11/17-Laufzeiten auszuführen.
Ihre Anwendung muss eine Main
-Klasse haben, die einen Webserver startet. Dieser antwortet auf HTTP-Anfragen von dem Port 8080, der mit der Umgebungsvariablen PORT
festgelegt werden kann.
Beispiel:
Beispiel für eine WAR-Migration
In der folgenden Anleitung wird gezeigt, wie Sie eine App Engine Java 8 hello-world
-Anwendung als JAR-Paket zur Ausführung in der Java 11/17-Laufzeit neu verpacken.
Bei der Migration wird das Artefakt appengine-simple-jetty-main
verwendet. Dadurch wird eine Main
-Klasse mit einem einfachen Jetty-Webserver bereitgestellt, der eine WAR-Datei lädt und Ihre Anwendung in einer ausführbaren JAR-Datei verpackt:
Klonen Sie das Artefakt des eingebetteten Jetty Server auf Ihren lokalen Computer:
git clone https://github.com/GoogleCloudPlatform/java-docs-samples
Sie können auch das Beispiel als ZIP-Datei herunterladen und extrahieren.
Wechseln Sie zu dem Verzeichnis, das den Beispielcode enthält:
cd java-docs-samples/appengine-java11/appengine-simple-jetty-main/
Installieren Sie die Abhängigkeit lokal:
mvn install
Fügen Sie folgenden Code in die
pom.xml
-Datei ein.appengine-simple-jetty-main
Abhängigkeitmaven-dependency
Plug-in App Engine stellt Dateien im Verzeichnis${build.directory}/appengine-staging
bereit. Wenn Sie dem Build das Plug-inmaven-dependency
hinzufügen, installiert App Engine die angegebenen Abhängigkeiten in den richtigen Ordner.
Erstellen Sie ein
entrypoint
-Element in Ihrerapp.yaml
-Datei, um dasappengine-simple-jetty-main
-Objekt aufzurufen, und übergeben Sie die WAR-Datei als Argument. Die Version vonWAR
muss mit der Version in der Dateipom.xml
übereinstimmen:So führen Sie Ihre Anwendung lokal aus:
Verpacken Sie Ihre Anwendung:
mvn clean package
Starten Sie den Server mit Ihrer WAR-Datei als Argument.
Sie können den Server beispielsweise im
helloworld-war
-Beispiel starten, indem Sie den folgenden Befehl aus dem Ordnerjava-docs-samples/appengine-java11/appengine-simple-jetty-main/
ausführen:mvn exec:java -Dexec.args="../flexible/java-11/helloworld-war/target/helloworld-1.war"
Geben Sie im Webbrowser die folgende Adresse ein:
So stellen Sie Ihre Anwendung mit dem Maven-Plug-in bereit:
mvn package appengine:deploy -Dapp.deploy.projectId=PROJECT_ID
Ersetzen Sie PROJECT_ID durch die ID Ihres Google Cloud-Projekts. Wenn in der Datei
pom.xml
bereits Ihre Projekt-ID angegeben ist, müssen Sie das Attribut-Dapp.deploy.projectId
nicht in dem von Ihnen ausgeführten Befehl einfügen.