Questo documento descrive come eseguire il nuovo pacchettizzazione di un'applicazione Java 8 come file JAR
da eseguire sui runtime Java 11/17.
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
Le seguenti istruzioni mostrano come eseguire il nuovo pacchettizzazione di un'applicazione App Engine Java 8 hello-world
come JAR da eseguire nel runtime Java 11/17.
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
: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. La versione diWAR
deve essere la stessa indicata nel filepom.xml
: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-war
eseguendo il seguente comando dalla directoryjava-docs-samples/appengine-java11/appengine-simple-jetty-main/
:mvn exec:java -Dexec.args="../flexible/java-11/helloworld-war/target/helloworld-1.war"
Nel browser web, inserisci il seguente indirizzo:
Per eseguire il deployment dell'applicazione utilizzando il 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 devi includere la proprietà-Dapp.deploy.projectId
nel comando eseguito.