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 seu aplicativo para a versão mais recente do Java com suporte. 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 vão continuar sendo executados e recebendo tráfego após a data de descontinuação.
Java 11: faça upgrade do aplicativo para a versão mais recente com suporte 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 vão continuar sendo executados e recebendo tráfego após a data de descontinuação.
Ambientes de execução de segunda geração compatíveis (Java 17 e Java 21):
O App Engine é compatível com versões do ambiente de execução Java de segunda geração, como Java 17 e Java 21. Para fazer upgrade para o Java 25 (pré-lançamento), faça o seguinte:
Atualize o arquivo
app.yamlespecificando uma versão do Java que você quer que o app execute. Exemplo:runtime: javaVERSIONEm que VERSION é o número da versão
MAJOR. Por exemplo, para usar a versão mais recente do Java, Java 25 (prévia), 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 é compatível com 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 (prévia) é executado por padrão no EE 11 e não é compatível com o 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
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 de ponto de entrada, configurações de propriedades do sistema, suporte do Jetty resultante e versões compatíveis do EE, consulte Recursos de 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 app para usar o EE 8 e versões mais recentes. |
| EE 8 | 17/21/25 (pré-lançamento) | 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 (pré-lançamento) no EE10. |
| EE 11 | 25 | 6.1 (padrão, recomendado). O Java 25 (pré-lançamento) 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 (prévia) na Enterprise Edition 11 (EE 11) ou o Java 21 na Enterprise Edition 10 (EE 10), faça upgrade dos servlets e das dependências do aplicativo nos arquivos
Maven e Gradle para incluir o namespace Jakarta:
Java 25 (prévia, EE 11)
Para usar o Java 25 (prévia) na 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 na 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 as 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 versões mais recentes.
Para executar seus aplicativos no Java EE 8, 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>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 incluem 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"/>