Si vas a migrar a la versión de Java más reciente compatible y tu aplicación no usa servicios antiguos incluidos, debes volver a empaquetar tu aplicación web de Java 8 de App Engine en un archivo JAR ejecutable.
Tu aplicación debe tener una clase Main
que inicie un servidor web que responda a las solicitudes HTTP en el puerto 8080, que puede especificarse mediante la variable de entorno PORT
.
Por ejemplo:
Ejemplo de migración de WAR (Java 11)
En las siguientes instrucciones se muestra cómo volver a empaquetar una aplicación hello-world
de Java 8 de App Engine como un archivo JAR para ejecutarla en el entorno de ejecución de Java 11.
La migración usa el artefacto appengine-simple-jetty-main
. Esto proporciona una clase Main
con un servidor web Jetty sencillo que carga un archivo WAR y empaqueta tu aplicación en un archivo JAR ejecutable:
Clona el artefacto Embedded Jetty Server en tu máquina local:
git clone https://github.com/GoogleCloudPlatform/java-docs-samples
También puedes descargar el ejemplo como un archivo ZIP y extraerlo.
Accede al directorio que contiene el código de muestra:
cd java-docs-samples/appengine-java11/appengine-simple-jetty-main/
Instala la dependencia localmente:
mvn install
Añade el siguiente código al archivo
pom.xml
de tu proyecto:appengine-simple-jetty-main
dependencia:maven-dependency
: App Engine despliega los archivos ubicados en el directorio${build.directory}/appengine-staging
. Si añades el complementomaven-dependency
a tu compilación, App Engine instalará las dependencias que hayas especificado en la carpeta correcta.
Crea un elemento
entrypoint
en tu archivoapp.yaml
para llamar al objetoappengine-simple-jetty-main
y transfiere tu archivo WAR como argumento. Por ejemplo, consulta elhelloworld-servlet
ejemploapp.yaml
:Para ejecutar tu aplicación de forma local, sigue estos pasos:
Empaqueta tu aplicación:
mvn clean package
Inicia el servidor con tu archivo WAR como argumento.
Por ejemplo, puedes iniciar el servidor en el ejemplo
helloworld-servlet
ejecutando el siguiente comando desde tu carpetajava-docs-samples/appengine-java11/appengine-simple-jetty-main/
:mvn exec:java -Dexec.args="../helloworld-java8/target/helloworld.war"
Introduce la siguiente dirección en el navegador web:
Para desplegar tu aplicación, sigue estos pasos:
Herramientas de gcloud
gcloud app deploy
Plugin de Maven
mvn package appengine:deploy -Dapp.deploy.projectId=PROJECT_ID
Sustituye PROJECT_ID por el ID de tu Google Cloud proyecto. Si tu archivo
pom.xml
ya especifica tu ID de proyecto, no es necesario que incluyas la propiedad-Dapp.deploy.projectId
en el comando que ejecutes.