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

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

Quais são as mudanças entre os tempos de execução padrão do Java 7 e do Java 8?

Em geral, todos os recursos disponíveis no tempo de execução do Java 7 precisam estar disponíveis no tempo de execução do Java 8.

Se o código do aplicativo depender da presença de um administrador de segurança Java, ou se algumas restrições de carregamento de classe forem expostas pelo sandbox de segurança do Java 7, o aplicativo poderá se comportar de maneira diferente. Não se esqueça de testar o aplicativo com o tempo de execução do Java 8 antes de veicular solicitações do cliente.

Posso usar o Kotlin com o tempo 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 recebo java.lang.NoClassDefFoundError para classes reempacotadas?

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

Se você precisar usar as classes reempacotadas no app do Java 8, defina appengine.api.legacy.repackaging como true no appengine-web.xml. Por 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 7 e o Java 8?

Sim, cada versão de serviço/módulo pode usar uma versão de tempo 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 tempo 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
/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.

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Ambiente padrão do App Engine para Java 8