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 às solicitações HTTP na porta especificada pela variável de ambiente PORT
,
normalmente 8081.
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.