Se stai eseguendo la migrazione alla versione Java supportata più recente e la tua app non utilizza i servizi in bundle legacy, devi ripacchettizzare l'applicazione web Java 8 di App Engine in un file JAR eseguibile.
L'applicazione deve avere una classe Main che avvia un server web che risponde alle richieste HTTP sulla porta 8080, che potrebbe essere specificata dalla variabile di ambiente PORT.
Ad esempio:
Esempio di migrazione WAR (Java 11)
Le seguenti istruzioni mostrano come ripacchettizzare un'applicazione hello-world Java 8 di App Engine come JAR da eseguire sul runtime Java 11.
La migrazione utilizza l'artefatto appengine-simple-jetty-main. Questo fornisce una classe Main con un semplice server web Jetty che carica un file WAR e pacchettizza l'app in un file JAR eseguibile:
Clona l'artefatto del server Jetty incorporato sulla tua macchina locale:
git clone https://github.com/GoogleCloudPlatform/java-docs-samplesIn alternativa puoi scaricare l'esempio come file ZIP ed estrarlo.
Passa alla directory che contiene il codice campione:
cd java-docs-samples/appengine-java11/appengine-simple-jetty-main/Installa la dipendenza localmente:
mvn installAggiungi il seguente codice al file
pom.xmldel progetto:- Dipendenza
appengine-simple-jetty-main: - Plug-in
maven-dependency: App Engine esegue il deployment dei file che si trovano nella directory${build.directory}/appengine-staging. Se aggiungi il plug-inmaven-dependencyalla build, App Engine installa le dipendenze specificate nella cartella corretta.
- Dipendenza
Crea un elemento
entrypointnel fileapp.yamlper chiamare l'oggettoappengine-simple-jetty-maine passare il file WAR come argomento. Ad esempio, consulta ilhelloworld-servletcampioneapp.yamlfile:Per eseguire l'applicazione localmente:
Pacchettizza l'applicazione:
mvn clean packageAvvia il server con il file WAR come argomento.
Ad esempio, puoi avviare il server nell'
helloworld-servletesempio eseguendo il seguente comando dallajava-docs-samples/appengine-java11/appengine-simple-jetty-main/cartella:mvn exec:java -Dexec.args="../helloworld-java8/target/helloworld.war"Nel browser web, inserisci il seguente indirizzo:
Per eseguire il deployment dell'applicazione:
Strumenti gcloud
gcloud app deploy
Plug-in Maven
mvn package appengine:deploy -Dapp.deploy.projectId=PROJECT_ID
Sostituisci PROJECT_ID con l'ID del tuo Google Cloud progetto. Se il file
pom.xmlspecifica già l'ID progetto, non devi includere la proprietà-Dapp.deploy.projectIdnel comando che esegui.