Se estiver a migrar para a versão Java suportada mais recente e a sua app não usar serviços agrupados antigos, tem de reempacotar a sua aplicação Web Java 8 do App Engine num ficheiro JAR executável.
A sua aplicação tem de ter uma classe Main que inicie um servidor Web que responda a pedidos HTTP na porta 8080, que pode ser especificada pela variável de ambiente PORT.
Por exemplo:
Exemplo de migração de WAR (Java 11)
As instruções seguintes demonstram como reempacotar uma aplicação Java 8 do App Engine hello-world como um JAR para ser executado no tempo de execução do Java 11.
A migração usa o artefacto appengine-simple-jetty-main. Isto fornece uma classe Main com um servidor Web Jetty simples que carrega um ficheiro WAR e inclui a sua app num ficheiro JAR executável:
Clone o artefacto do servidor Jetty incorporado para a sua máquina local:
git clone https://github.com/GoogleCloudPlatform/java-docs-samplesEm alternativa, pode transferir o exemplo como um ficheiro ZIP e extraí-lo.
Altere para o diretório que contém o código de exemplo:
cd java-docs-samples/appengine-java11/appengine-simple-jetty-main/Instale a dependência localmente:
mvn installAdicione o seguinte código ao ficheiro
pom.xmldo seu projeto:appengine-simple-jetty-maindependência:maven-dependencyplugin: O App Engine implementa ficheiros localizados no diretório${build.directory}/appengine-staging. Ao adicionar o pluginmaven-dependencyà sua compilação, o App Engine instala as dependências especificadas na pasta correta.
Crie um elemento
entrypointno seu ficheiroapp.yamlpara chamar o objetoappengine-simple-jetty-maine transmita o seu ficheiro WAR como um argumento. Por exemplo, veja o ficheiro dehelloworld-servletexemploapp.yaml:Para executar a sua aplicação localmente:
Empacote a sua aplicação:
mvn clean packageInicie o servidor com o ficheiro WAR como argumento.
Por exemplo, pode iniciar o servidor no exemplo
helloworld-servletexecutando o seguinte comando a partir da pastajava-docs-samples/appengine-java11/appengine-simple-jetty-main/:mvn exec:java -Dexec.args="../helloworld-java8/target/helloworld.war"No navegador de Internet, introduza o seguinte endereço:
Para implementar a sua aplicação:
Ferramentas gcloud
gcloud app deploy
Plugin Maven
mvn package appengine:deploy -Dapp.deploy.projectId=PROJECT_ID
Substitua PROJECT_ID pelo ID do seu Google Cloud projeto. Se o seu ficheiro
pom.xmljá especificar o seu ID do projeto , não precisa de incluir a propriedade-Dapp.deploy.projectIdno comando que executa.