Ce document explique comment réempaqueter une application Java 8 en tant que fichier JAR
à exécuter sur les environnements d'exécution Java 11/17.
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
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/17.
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 au fichier
pom.xml
:- 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. La version deWAR
doit être identique à la version indiquée dans votre fichierpom.xml
: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-war
en exécutant la commande suivante à partir du dossierjava-docs-samples/appengine-java11/appengine-simple-jetty-main/
:mvn exec:java -Dexec.args="../flexible/java-11/helloworld-war/target/helloworld-1.war"
Dans votre navigateur Web, saisissez l'adresse suivante :
Pour déployer votre application à l'aide du plug-in Maven, procédez comme suit :
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.