Wenn Sie zur neuesten unterstützten Java-Version migrieren und Ihre Anwendung keine gebündelten Legacy-Dienste verwendet, müssen Sie Ihre App Engine Java 8-Webanwendung in eine ausführbare JAR-Datei neu verpacken.
Ihre Anwendung muss eine Main-Klasse haben, die einen Webserver startet, der auf HTTP-Anfragen auf Port 8080 antwortet. Dieser Port kann durch die Umgebungsvariable PORT angegeben werden.
Beispiel:
Beispiel für die WAR-Migration (Java 11)
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-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-samplesSie 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 installFügen Sie der Projektdatei
pom.xmlfolgenden Code hinzu:appengine-simple-jetty-main-Abhängigkeit:maven-dependencyPlug-in: App Engine stellt Dateien im Verzeichnis${build.directory}/appengine-stagingbereit. Wenn Sie dem Build das Plug-inmaven-dependencyhinzufü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. Sehen Sie sich zur Veranschaulichung die Dateiapp.yamldeshelloworld-servlet-Beispiels an:So führen Sie Ihre Anwendung lokal aus:
Verpacken Sie Ihre Anwendung:
mvn clean packageStarten Sie den Server mit Ihrer WAR-Datei als Argument.
Sie können den Server beispielsweise im
helloworld-servlet-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="../helloworld-java8/target/helloworld.war"Geben Sie im Webbrowser die folgende Adresse ein:
So stellen Sie Ihre Anwendung bereit:
gcloud-Tool
gcloud app deploy
Maven-Plug-in
mvn package appengine:deploy -Dapp.deploy.projectId=PROJECT_ID
Ersetzen Sie PROJECT_ID durch die ID Ihres Projekts. Google Cloud Wenn in der Datei
pom.xmlbereits Ihre Projekt-ID angegeben ist, müssen Sie das Attribut-Dapp.deploy.projectIdnicht in dem von Ihnen ausgeführten Befehl einfügen.