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.
O processo de upgrade de um aplicativo atual depende da versão do ambiente de execução usada pelo aplicativo:
Java 8: migre o aplicativo para a versão com suporte mais recente do Java. O Java 8 chegou ao fim do suporte em 31 de janeiro de 2024 e será descontinuado em 31 de janeiro de 2026. Após a descontinuação, não será possível implantar aplicativos Java 8, mesmo que sua organização tenha usado uma política da organização para reativar implantações de ambientes de execução legados. Os aplicativos Java 8 atuais continuarão sendo executados e recebendo tráfego após a data de descontinuação.
Java 11: faça upgrade do aplicativo para a versão com suporte mais recente do Java. O Java 11 chegou ao fim do suporte em 31 de outubro de 2024 e será descontinuado em 31 de outubro de 2025. Após a descontinuação, não será possível implantar aplicativos Java 11. Os aplicativos Java 11 atuais continuarão sendo executados e recebendo tráfego após a data de descontinuação.
Ambientes de execução de segunda geração com suporte (Java 17 e Java 21):
O App Engine oferece suporte a versões de ambiente de execução do Java de segunda geração, como o Java 17 e o Java 21. Para fazer upgrade para o Java 25, siga estas etapas:
Atualize o arquivo
app.yamlespecificando uma versão do Java em que você quer que o app seja executado. Exemplo:runtime: javaVERSIONEm que VERSION é o número da versão
MAJOR. Por exemplo, para usar a versão mais recente do Java, o Java 25, especifique25. 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 aplicativos para serem executados em:
Java Enterprise Edition 11 (E11): o EE 11 não oferece suporte a APIs
javax.servlet.*e exige que você atualize seus aplicativos e dependências de terceiros para usar artefatos Java mais recentes, como o namespaceJakarta. O Java 25 é executado por padrão no EE 11 e não oferece suporte ao EE 10.Java Enterprise Edition 8 (EE 8): o Java EE 8 permite que você use APIs
javax.servlet.*, mas é necessário fazer pequenas alterações de configuração no arquivoappengine-web.xml.
Fazer upgrade para uma versão compatível do Java para serviços agrupados legados
Compatibilidade com o ambiente de execução do Java
Por padrão, o App Engine inclui um servidor da Web incorporado do EE no seu projeto Java. A partir do Java 25, o servidor da Web do EE do App Engine é instalado durante a implantação. O Google publica periodicamente uma nova versão do JAR. O App Engine usa a versão mais recente do servidor da Web incorporado do EE sempre que você reimplantar o aplicativo.
Consulte a tabela a seguir para entender quais versões do Java são compatíveis com suas versões do servlet. Para mais detalhes sobre os recursos do ponto de entrada, as configurações de propriedades do sistema, o suporte do Jetty resultante e as versões compatíveis do EE, consulte Recursos do ponto de entrada.
| Enterprise Edition (EE) | Versão do Java | Servlet | Compatibilidade |
|---|---|---|---|
| EE7 | 11 | 2.5 ou 3.1 | Não há suporte da comunidade para o EE7. O Java 11 chegou ao fim do suporte. Recomendamos que você faça upgrade do seu app para usar a versão mais recente do Java. |
| EE7 | 17 | 2.5 ou mais recente | Não há suporte da comunidade para o EE7. Recomendamos que você faça upgrade do seu app para usar o EE 8 e versões mais recentes. |
| EE 8 | 17/21/25 | 2.5 e mais recentes | O Java EE 8 é compatível com versões anteriores do Java EE6 e com versões mais recentes. Para mais informações, consulte Fazer upgrade do Java em uma versão compatível do Enterprise Edition (EE). |
| EE 10 | 17/21 | 6.0 (padrão, recomendado). O Java 21 está configurado para executar o EE 10 por padrão. | Para usar o Java EE 10, atualize os servlets e as dependências do aplicativo para incluir o namespace Jakarta. Para mais informações, consulte Fazer upgrade do Java em uma versão compatível do Enterprise Edition (EE). Não é possível usar o Java 25 no EE10. |
| EE 11 | 25 | 6.1 (padrão, recomendado). O Java 25 está configurado para executar o EE 11 por padrão. | Para usar o Java EE 11, atualize os servlets e as dependências do aplicativo para incluir o namespace Jakarta. Para mais informações, consulte Fazer upgrade do Java em uma versão compatível do Enterprise Edition (EE). |
Fazer upgrade do Java em uma versão compatível do Enterprise Edition (EE)
Para usar o Java 25 no Enterprise Edition 11 (EE 11) ou o Java 21 no Enterprise Edition 10 (EE 10), faça upgrade dos servlets e das dependências do aplicativo nos seus
arquivos Maven e Gradle para incluir o namespace Jakarta:
Java 25 (EE 11)
Para usar o Java 25 no Enterprise Edition 11 (EE 11), siga estas etapas:
Altere o número da versão no arquivo de configuração
web.xmlparaversion=6.1. Por 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_1.xsd" version="6.1"> ... </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.Adicione a seguinte propriedade do sistema ao arquivo
appengine-web.xml:<?xml version="1.0" encoding="utf-8"?> <appengine-web-app xmlns="http://appengine.google.com/ns/1.0"> <runtime>java25</runtime> <system-properties> <property name="appengine.use.EE11" value="true"/> </system-properties> <app-engine-apis>true</app-engine-apis> </appengine-web-app>Opcional: o Java 25 dá suporte a linhas de execução virtuais. Para ativar as linhas de execução virtuais, adicione a propriedade
appengine.use.virtualthreadsna tagsystem-propertiesao arquivoappengine-web.xml.
Java 21 (EE 10)
Para usar o Java 21 no Enterprise Edition 10 (EE 10), siga estas etapas:
Altere o número da versão no arquivo de configuração
web.xmlparaversion=6.0. Por 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.Adicione a seguinte propriedade do sistema ao arquivo
appengine-web.xml:<?xml version="1.0" encoding="utf-8"?> <appengine-web-app xmlns="http://appengine.google.com/ns/1.0"> <runtime>java21</runtime> <!-- or java17 --> <system-properties> <property name="appengine.use.EE10" 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.virtualthreadsna tagsystem-propertiesao arquivoappengine-web.xml.
Java 17 e mais recentes (EE 8)
Use APIs javax.servlet.* no Java EE 8 sem grandes mudanças na configuração do aplicativo. O EE 8 oferece compatibilidade com versões anteriores do Java EE 6 e com versões mais recentes.
Para executar seus aplicativos no Java EE 8, declare uma nova
system-properties tag no seu
appengine-web.xml
arquivo com a configuração app.engine.use.EE8 não padrão:
<?xml version="1.0" encoding="utf-8"?>
<appengine-web-app xmlns="http://appengine.google.com/ns/1.0">
<runtime>java17</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 versão 21 e mais recentes oferecem 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"/>