Se stai eseguendo la migrazione alla versione Java più recente supportata e la tua app non utilizza servizi in bundle legacy, devi pacchettizzare l'applicazione web Java 8 di App Engine in un file JAR eseguibile.
L'applicazione deve avere una classe Main
che avvii un server web che risponde alle richieste HTTP sulla porta specificata dalla variabile di ambiente PORT
, in genere 8081.
Ad esempio:
Esempio di migrazione WAR (Java 11)
Le istruzioni seguenti mostrano come creare un nuovo pacchetto di un'applicazione hello-world
Java 8 di App Engine come JAR da eseguire nel 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 la tua 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-samples
In alternativa, puoi scaricare l'esempio 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 install
Aggiungi il seguente codice al file del progetto
pom.xml
:- 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
. Aggiungendo il plug-inmaven-dependency
alla build, App Engine installa le dipendenze specificate nella cartella corretta.
- Dipendenza
Crea un elemento
entrypoint
nel fileapp.yaml
per chiamare l'oggettoappengine-simple-jetty-main
e passare il file WAR come argomento. Ad esempio, consulta il file di esempiohelloworld-servlet
app.yaml
:Per eseguire l'applicazione localmente:
Pacchettizza la tua applicazione:
mvn clean package
Avvia il server con il tuo file WAR come argomento.
Ad esempio, puoi avviare il server nell'esempio
helloworld-servlet
eseguendo questo 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 della tua 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 file
pom.xml
specifica già il tuo ID progetto, non è necessario includere la proprietà-Dapp.deploy.projectId
nel comando che esegui.