Se esegui la migrazione alla versione Java supportata più recente e la tua app non utilizza i servizi pacchettizzati precedenti, devi ripacchettare l'applicazione web App Engine Java 8 in un file JAR eseguibile.
L'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 istruzioni riportate di seguito mostrano come eseguire il nuovo pacchettizzazione di un'applicazione App Engine
hello-world
Java 8 come file JAR da eseguire nel runtime Java 11.
La migrazione utilizza l'elemento appengine-simple-jetty-main
. 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'elemento Embedded Jetty Server sulla tua macchina locale:
git clone https://github.com/GoogleCloudPlatform/java-docs-samples
In alternativa, puoi scaricare il sample 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 codice seguente al file
pom.xml
del progetto:appengine-simple-jetty-main
dipendenza:maven-dependency
plugin: App Engine esegue il deployment dei file nella directory${build.directory}/appengine-staging
. Aggiungendo il plug-inmaven-dependency
alla build, App Engine installa le dipendenze specificate nella cartella corretta.
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 filehelloworld-servlet
di esempioapp.yaml
:Per eseguire l'applicazione in locale:
Crea il pacchetto dell'applicazione:
mvn clean package
Avvia il server con il file WAR come argomento.
Ad esempio, puoi avviare il server nell'esempio
helloworld-servlet
eseguendo il seguente comando dalla directoryjava-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.xml
specifica già il tuo ID progetto , non è necessario includere la proprietà-Dapp.deploy.projectId
nel comando eseguito.