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 Java 8 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 11)
Les instructions suivantes montrent comment réempaqueter une application Java 8 hello-world App Engine en tant que fichier JAR à exécuter sur l'environnement d'exécution Java 11.
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/appengine-java11/appengine-simple-jetty-main/Installez la dépendance en local :
mvn installAjoutez le code suivant dans le fichier
pom.xmlde votre projet :- Dépendance
appengine-simple-jetty-main: - Plug-in
maven-dependency: App Engine déploie les fichiers situés dans le répertoire${build.directory}/appengine-staging. En ajoutant le plug-inmaven-dependencyà votre compilation, App Engine installe les dépendances spécifiées dans le dossier approprié.
- Dépendance
Créez un élément
entrypointdans votre fichierapp.yamlpour appeler l'objetappengine-simple-jetty-mainet transmettre votre fichier WAR en tant qu'argument. Par exemple, consultez l'exemplehelloworld-servletdu fichierapp.yaml:Pour exécuter votre application localement, procédez comme suit :
Empaqueter votre application :
mvn clean packageDémarrez le serveur avec votre fichier WAR en tant qu'argument.
Par exemple, vous pouvez démarrer le serveur dans l'exemple
helloworld-servleten exécutant la commande suivante à partir du dossierjava-docs-samples/appengine-java11/appengine-simple-jetty-main/:mvn exec:java -Dexec.args="../helloworld-java8/target/helloworld.war"Dans 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.