Si vous migrez vers la dernière version Java compatible et que votre application n'utilise pas les anciens services groupés, vous devez réempaqueter votre application Web App Engine dans un fichier JAR exécutable.
Votre application doit comporter une classe Main qui démarre un serveur Web répondant aux requêtes HTTP sur le port 8080, qui peut être spécifié par la variable d'environnement PORT.
Exemple :
Exemple de migration WAR (Java 21)
Les instructions suivantes montrent comment réempaqueter une application WAR hello-world App Engine en tant que fichier JAR à exécuter sur l'environnement d'exécution Java 21.
La migration utilise l'artefact appengine-simple-jetty-main. Cela fournit une classe Main avec un serveur Web Jetty simple qui charge un fichier WAR et empaquette votre application dans un fichier JAR exécutable :
Clonez l'artefact Embedded Jetty Server sur votre ordinateur local :
git clone https://github.com/GoogleCloudPlatform/java-docs-samplesVous pouvez également télécharger l'exemple en tant que fichier ZIP et l'extraire.
Accédez au répertoire qui contient l'exemple de code :
cd java-docs-samples/flexible/repacking-legacy-applications/appengine-simple-jetty-main/Créez le fichier JAR de l'exécuteur Jetty :
mvn installCela génère
jetty-jar-with-dependencies.jardans votre répertoiretarget/.Configurez le fichier de compilation
pom.xmlpour le serveur Jetty :- Propriétés du compilateur (Java 21) :
- Dépendances Jetty intégrées :
- Configuration de
maven-assembly-plugin:
Placez le fichier
jetty-jar-with-dependencies.jargénéré et le fichier WAR de votre application. Par exemple,helloworld.wardans le même répertoire.Créez un fichier
app.yamldans le répertoire de votre application pour spécifier l'environnement d'exécution Java 21 et un élémententrypointpour appeler le fichierjetty-jar-with-dependencies.jaret transmettre votre fichier WAR en tant qu'argument :runtime: java21 entrypoint: 'java -jar jetty-jar-with-dependencies.jar helloworld.war'Pour exécuter votre application localement, procédez comme suit :
Démarrez le serveur avec votre fichier WAR en tant qu'argument :
java -jar jetty-jar-with-dependencies.jar helloworld.warDans votre navigateur Web, saisissez l'adresse suivante :
Pour déployer votre application, procédez comme suit :
Outils gcloud
gcloud app deploy
Plug-in Maven
mvn package appengine:deploy -Dapp.deploy.projectId=PROJECT_ID
Remplacez PROJECT_ID par l'ID de votre projet Google Cloud . Si votre ID de projet est déjà inclus dans le fichier
pom.xml, vous n'avez pas besoin d'inclure la propriété-Dapp.deploy.projectIddans la commande que vous exécutez.