Se esegui la migrazione all'ultima versione di Java supportata e la tua app non utilizza servizi in bundle legacy, devi ricompattare l'applicazione web Java 8 di App Engine in un file JAR eseguibile.
La tua applicazione deve avere una classe Main che avvii un server web che risponda
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 ricompilare un'applicazione App Engine
Java 8 hello-world come JAR da eseguire nel runtime Java 11.
La migrazione utilizza l'artefatto appengine-simple-jetty-main. Viene fornita 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 il campione come file ZIP ed estrarlo.
Passa alla directory che contiene il codice di esempio:
cd java-docs-samples/appengine-java11/appengine-simple-jetty-main/Installa la dipendenza localmente:
mvn installAggiungi il seguente codice al file
pom.xmldel progetto:appengine-simple-jetty-maindipendenza:maven-dependencyplug-in: App Engine esegue il deployment dei file presenti nella directory${build.directory}/appengine-staging. Se aggiungi il plug-inmaven-dependencyalla build, App Engine installa le dipendenze specificate nella cartella corretta.
Crea un elemento
entrypointnel fileapp.yamlper chiamare l'oggettoappengine-simple-jetty-maine passa il file WAR come argomento. Ad esempio, vedi il campionehelloworld-servletdel fileapp.yaml:Per eseguire l'applicazione in locale:
Pacchettizza la tua applicazione:
mvn clean packageAvvia il server con il file WAR come argomento.
Ad esempio, puoi avviare il server nell'esempio
helloworld-servleteseguendo il seguente comando dalla cartellajava-docs-samples/appengine-java11/appengine-simple-jetty-main/: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 progetto Google Cloud . Se il tuo file
pom.xmlspecifica già il tuo ID progetto, non devi includere la proprietà-Dapp.deploy.projectIdnel comando che esegui.