Se você estiver migrando para a versão Java compatível mais recente e seu aplicativo não usar serviços incluídos legados, será necessário reempacotar o aplicativo da Web Java 8 do App Engine em um arquivo JAR executável.
Seu aplicativo precisa ter uma classe Main
que inicie um servidor da Web que responda
a solicitações HTTP na porta 8080, que pode ser especificada pela variável de ambiente
PORT
.
Exemplo:
Exemplo de migração do WAR (Java 11)
As instruções a seguir demonstram como empacotar novamente um aplicativo hello-world
Java 8 do App Engine como um JAR a ser executado no ambiente de execução do Java 11.
A migração usa o artefato appengine-simple-jetty-main
. Isso fornece uma
classe Main
com um servidor da Web Jetty simples que carrega um arquivo WAR e empacota
seu aplicativo em um arquivo JAR executável:
Clone o artefato do servidor incorporado do Jetty na sua máquina local:
git clone https://github.com/GoogleCloudPlatform/java-docs-samples
Também é possível fazer o download do exemplo como um arquivo zip e extraí-lo.
Acesse o diretório que contém o exemplo de código:
cd java-docs-samples/appengine-java11/appengine-simple-jetty-main/
Instale a dependência localmente:
mvn install
Adicione o seguinte código ao arquivo
pom.xml
do projeto:- Dependência de
appengine-simple-jetty-main
: - Plug-in
maven-dependency
: O App Engine implanta os arquivos localizados no diretório${build.directory}/appengine-staging
. Ao adicionar o plug-inmaven-dependency
à build, o App Engine instala as dependências especificadas na pasta correta.
- Dependência de
Crie um elemento
entrypoint
no arquivoapp.yaml
para chamar o objetoappengine-simple-jetty-main
e insira o arquivo WAR como um argumento. Por exemplo, consulte o arquivoapp.yaml
da amostrahelloworld-servlet
:Para executar seu aplicativo localmente:
Empacote seu aplicativo:
mvn clean package
Inicie o servidor com o arquivo WAR como um argumento.
Por exemplo, você pode iniciar o servidor no
helloworld-servlet
de exemplo executando o seguinte comando da sua pastajava-docs-samples/appengine-java11/appengine-simple-jetty-main/
:mvn exec:java -Dexec.args="../helloworld-java8/target/helloworld.war"
No navegador da Web, digite este endereço:
Para implantar o aplicativo:
Ferramentas do gcloud
gcloud app deploy
Plug-in do Maven
mvn package appengine:deploy -Dapp.deploy.projectId=PROJECT_ID
Substitua PROJECT_ID pelo ID do projeto do Google Cloud. Se o arquivo
pom.xml
já especificar o ID do projeto, não será necessário incluir a propriedade-Dapp.deploy.projectId
no comando executado.