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-samples
Em 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 install
Adicione o seguinte código ao ficheiro
pom.xml
do seu projeto:appengine-simple-jetty-main
dependência:maven-dependency
plugin: 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
entrypoint
no seu ficheiroapp.yaml
para chamar o objetoappengine-simple-jetty-main
e transmita o seu ficheiro WAR como um argumento. Por exemplo, veja o ficheiro dehelloworld-servlet
exemploapp.yaml
:Para executar a sua aplicação localmente:
Empacote a sua aplicação:
mvn clean package
Inicie o servidor com o ficheiro WAR como argumento.
Por exemplo, pode iniciar o servidor no exemplo
helloworld-servlet
executando 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.xml
já especificar o seu ID do projeto , não precisa de incluir a propriedade-Dapp.deploy.projectId
no comando que executa.