Faça upgrade dos aplicativos para a versão com suporte mais recente do ambiente de execução a fim de continuar recebendo atualizações de segurança e se qualificar para o suporte técnico. Considere também a migração para o Cloud Run, a evolução mais recente do Google Cloud sem servidor. O Cloud Run foi projetado para melhorar a experiência do App Engine, incorporando muitos dos melhores recursos do ambiente padrão e do ambiente flexível. Para comparar recursos e entender a migração, consulte o guia de comparação entre o App Engine e o Cloud Run.
O processo de upgrade de um app atual depende da versão do ambiente de execução usada atualmente pelo app:
Java 8: é necessário migrar o app para a versão com suporte mais recente do Java. O Java 8 chegou ao fim do suporte em 31 de janeiro de 2024. Os aplicativos Java 8 atuais continuarão a ser executados e recebendo tráfego. No entanto, não será possível implantar aplicativos novos ou atualizar os atuais que usam ambientes de execução após a data de término de suporte.
Java 11 ou Java 17:
Estes ambientes de execução são versões Java com suporte. Para continuar fazendo upgrade para a versão de suporte mais recente, faça o seguinte:
Atualize o arquivo
app.yaml
especificando a versão do Java que você quer que o app execute. Exemplo:runtime: javaVERSION
Em que VERSION é o número da versão
MAJOR
.Exemplo: para Java 21, especifique 21 como
runtime: java21
. Para mais informações, consulte a Visão geral do ambiente de execução do Java.Se você usa serviços agrupados legados, faça upgrade dos apps para serem executados em:
Java Enterprise Edition 10 (EE10 - padrão, recomendado): o Java EE10 não dá suporte a APIs
javax.servlet.*
e exige que você atualize seus apps e dependências de terceiros para usar artefatos Java mais recentes, como o namespaceJakarta
.Java Enterprise Edition 8 (EE8): o Java EE8 permite que você use APIs
javax.servlet.*
, mas é necessário fazer pequenas alterações de configuração no arquivoappengine-web.xml
.
Consulte Fazer upgrade para o Java 21 a fim de acessar serviços agrupados legados para conferir todas as opções.
Fazer upgrade para o Java 21 a fim de ter acesso a serviços agrupados legados
Compatibilidade com o ambiente de execução do Java
Consulte a seguinte tabela para entender quais versões do Java são compatíveis com suas versões do Jetty e do servlet:
Enterprise Edition (EE) | Versão do Jetty | Versão do Java | Servlet | Compatibilidade |
---|---|---|---|---|
EE7 | 9.4 | 11 | 2.5 ou 3.1 | |
EE7 | 9.4 | 17 | 2.5 ou 3.1 | |
EE8 | 12 | 21 | 2.5 e mais recentes | O Java EE8 é compatível com versões anteriores do Java EE6 e com versões mais recentes. Para mais informações, consulte Fazer upgrade para o Java 21 no EE8. |
EE10 | 12 | 21 | 6.0 (recomendado). O Java 21 está configurado para executar o EE10 por padrão. | Para usar o Java EE10, é necessário atualizar os servlets e as dependências do aplicativo para incluir o namespace Jakarta . Para mais informações, consulte Fazer upgrade do Java 21 no EE10. |
Fazer upgrade para o Java 21 no EE10
Para usar o Java 21 na Enterprise Edition 10 (EE10),
faça upgrade dos servlets e das dependências do aplicativo nos arquivos Maven e
Gradle para incluir o namespace Jakarta
:
Altere o número da versão no arquivo de configuração
web.xml
paraversion=6.0
. Exemplo:<web-app xmlns="https://jakarta.ee/xml/ns/jakartaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/web-app_6_0.xsd" version="6.0"> ... </web-app>
Renomeie os servlets e as dependências do aplicativo de
javax.servlet.*
parajakarta.servlet.*
:import jakarta.servlet.ServletException; import jakarta.servlet.annotation.WebServlet; import jakarta.servlet.http.Cookie; import jakarta.servlet.http.HttpServlet; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; @WebServlet(name = "viewer", urlPatterns = {"/view"}) public class MyServlet extends HttpServlet { ......
Atualize as dependências de terceiros restantes do aplicativo para artefatos Java mais recentes, de acordo com o namespace
Jakarta
.Opcional: o Java 21 dá suporte a linhas de execução virtuais. Para ativar as linhas de execução virtuais, adicione a propriedade
appengine.use.virtualthreads
na tagsystem-properties
ao arquivoappengine-web.xml
.
Fazer upgrade para o Java 21 no EE8
Você pode continuar usando as APIs javax.servlet.*
no Java EE8 sem grandes mudanças
na configuração do aplicativo, porque o Jetty 12 oferece compatibilidade com versões anteriores do Java EE6 e
com versões mais recentes. Para executar seus aplicativos no Java EE8, declare uma nova
tag system-properties
no arquivo
appengine-web.xml
com a configuração não padrão app.engine.use.EE8
:
<?xml version="1.0" encoding="utf-8"?>
<appengine-web-app xmlns="http://appengine.google.com/ns/1.0">
<runtime>java21</runtime>
<system-properties>
<property name="appengine.use.EE8" value="true"/>
</system-properties>
<app-engine-apis>true</app-engine-apis>
</appengine-web-app>
Opcional: o Java 21 dá suporte a linhas de execução virtuais. Para ativar
as linhas de execução virtuais, adicione a propriedade appengine.use.virtualthreads
na tag system-properties
. Exemplo: <property name="appengine.use.virtualthreads" value="true"/>