Perguntas frequentes sobre tempo de execução do Java 8 do App Engine

As perguntas a seguir se aplicam ao ambiente de execução padrão do Java 8 do App Engine.

Posso usar o Kotlin com o ambiente de execução do Java 8?

Sim, confira os exemplos do Kotlin no repositório do GitHub.

Posso usar o IntelliJ IDEA Community Edition com o App Engine?

Sim, usando a integração do Maven interna.

Você também pode usar o IntelliJ Ultimate Edition, que oferece mais recursos de desenvolvimento de aplicativo da Web e mais integração com o processo de implantação do App Engine.

O App Engine Cloud Endpoints v1.0 funciona no tempo de execução do Java 8?

Não. Você precisa migrar para o Cloud Endpoints Frameworks versão 2.0.

Por que eu recebo java.lang.NoClassDefFoundError para classes reempacotadas?

Classes internas reempacotadas, como com/google/appengine/repackaged/com/google/common/collect/ImmutableList, não estão mais disponíveis no ambiente de execução do Java 8, mesmo se forem definidas em versões anteriores do JAR da API App Engine.

Se você precisar usar as classes reempacotadas no seu aplicativo Java 8, defina appengine.api.legacy.repackaging como verdadeiro no appengine-web.xml. Exemplo:

<system-properties>
  <property name="appengine.api.legacy.repackaging" value="true">
</system-properties>

Recomendamos substituir essas classes pelas classes públicas, não reempacotadas.

Posso fazer divisão de tráfego entre o Java 8 e o Java 11?

Sim, cada versão de serviço ou de módulo pode usar uma versão de ambiente de execução diferente e a divisão de tráfego é compatível.

Como threads do Java 8 são tratados quando uma instância não está recebendo solicitações?

Os threads criados com as APIs do App Engine continuarão funcionando como antes.

Escalonamento automático Escalonamento manual Escalonamento básico
A instância é encerrada por causa da falta de solicitações. A instância será encerrada depois da solicitação mais recente (por padrão: cinco minutos) É executada para sempre.

Quais recursos do servidor de metadados são compatíveis com o ambiente de execução do Java 8 do App Engine?

O tempo de execução do Java 8 do App Engine aceita os seguintes URLs do servidor de metadados:

/computeMetadata/v1/project/numeric-project-id (pending)
/computeMetadata/v1/project/project-id
/computeMetadata/v1/instance/zone
/computeMetadata/v1/instance/service-accounts/default/aliases
/computeMetadata/v1/instance/service-accounts/default/email
/computeMetadata/v1/instance/service-accounts/default/scopes
/computeMetadata/v1/instance/service-accounts/default/token
/computeMetadata/v1/instance/service-accounts/{account}/aliases
/computeMetadata/v1/instance/service-accounts/{account}/email
/computeMetadata/v1/instance/service-accounts/{account}/scopes
/computeMetadata/v1/instance/service-accounts/{account}/token

Servidor de metadados v1beta1

O servidor de metadados v1beta1 está obsoleto e está programado para ser encerrado. Certifique-se de atualizar todas as solicitações para usar v1 ou mais recentes. Para mais informações, consulte Como fazer a transição para o endpoint do servidor de metadados v1.

/computeMetadata/v1beta1/project/numeric-project-id  (pending)
/computeMetadata/v1beta1/project/project-id
/computeMetadata/v1beta1/instance/zone
/computeMetadata/v1beta1/instance/service-accounts/default/aliases
/computeMetadata/v1beta1/instance/service-accounts/default/email
/computeMetadata/v1beta1/instance/service-accounts/default/scopes
/computeMetadata/v1beta1/instance/service-accounts/default/token
/computeMetadata/v1beta1/instance/service-accounts/{account}/aliases
/computeMetadata/v1beta1/instance/service-accounts/{account}/email
/computeMetadata/v1beta1/instance/service-accounts/{account}/scopes
/computeMetadata/v1beta1/instance/service-accounts/{account}/token

Por que minhas solicitações travam?

Se criar um conjunto de threads em uma solicitação, você precisará verificar se o desativou explicitamente antes do encerramento da solicitação atual.