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 spécifié par la variable d'environnement PORT
, généralement 8081.
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-samples
Vous 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 install
Ajoutez le code suivant dans le fichier
pom.xml
de votre projet :- dépendance
appengine-simple-jetty-main
maven-dependency
Plug-in 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
entrypoint
dans votre fichierapp.yaml
pour appeler l'objetappengine-simple-jetty-main
et transmettre votre fichier WAR en tant qu'argument. Par exemple, consultez l'exemplehelloworld-servlet
du fichierapp.yaml
:Pour exécuter votre application localement, procédez comme suit :
Empaqueter votre application :
mvn clean package
Démarrez le serveur avec votre fichier WAR en tant qu'argument.
Par exemple, vous pouvez démarrer le serveur dans l'exemple
helloworld-servlet
en 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.projectId
dans la commande que vous exécutez.