Este documento descreve como reempacotar um aplicativo Java 8 como um
arquivo JAR
para ser executado nos ambientes de execução do Java 11/17.
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
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/17.
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 código de amostra:
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
:- Dependência
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
Crie um elemento
entrypoint
no arquivoapp.yaml
para chamar o objetoappengine-simple-jetty-main
e insira o arquivo WAR como um argumento. A versãoWAR
precisa ser igual à versão listada no arquivopom.xml
: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-war
de exemplo executando o seguinte comando da sua pastajava-docs-samples/appengine-java11/appengine-simple-jetty-main/
:mvn exec:java -Dexec.args="../flexible/java-11/helloworld-war/target/helloworld-1.war"
No navegador da Web, digite este endereço:
Siga estas instruções para implantar o aplicativo usando o plug-in 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.