Domande frequenti sul runtime Java 8 di App Engine

Le seguenti domande riguardano il runtime standard di Java 8 di App Engine.

Posso utilizzare Kotlin con il runtime Java 8?

Sì, controlla i nostri esempi di Kotlin nel repository GitHub.

Posso utilizzare IntelliJ IDEA Community Edition con App Engine?

Sì, utilizzando l'integrazione Maven integrata.

Puoi anche utilizzare IntelliJ Ultimate Edition, che fornisce funzionalità di sviluppo delle applicazioni e ha una maggiore integrazione il processo di deployment di App Engine.

La versione 1.0 di App Engine Cloud Endpoints funziona nel runtime Java 8?

No. Devi eseguire la migrazione alla versione 2.0 di Cloud Endpoints Frameworks.

Perché viene visualizzato java.lang.NoClassDefFoundError per le classi riconfezionate?

Le classi interne riempestate, come com/google/appengine/repackaged/com/google/common/collect/ImmutableList, non sono più disponibili nel runtime Java 8, anche se sono definite nelle versioni precedenti del file JAR dell'API App Engine.

Se devi utilizzare le classi rielaborate nella tua app Java 8, imposta appengine.api.legacy.repackaging su true in appengine-web.xml. Per esempio:

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

Ti consigliamo di sostituire questi corsi con i corsi pubblici non pacchettizzati.

Posso eseguire la suddivisione del traffico tra Java 8 e Java 11?

Sì, ogni versione del servizio o del modulo può utilizzare una versione del runtime diversa e la suddivisione del traffico è supportata.

Come vengono trattati i thread Java 8 quando un'istanza non riceve richieste?

I thread creati con le API di App Engine continueranno a funzionare come prima.

Scalabilità automatica Scalabilità manuale Scalabilità di base
L'istanza viene terminata per mancanza di richieste. L'istanza termina dopo l'ultima richiesta (valore predefinito: 5 minuti) Viene eseguito in modo perpetuo.

Quali funzionalità del server di metadati sono supportate nel runtime di App Engine Java 8?

Il runtime Java 8 di App Engine supporta i seguenti URL di server di metadati:

/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

Server metadati v1beta1

Il server di metadati v1beta1 è deprecato e la sua disattivazione è pianificata. Ensure aggiornare tutte le richieste in modo che utilizzino la versione v1 o successive. Per saperne di più, consulta Transizione all'endpoint del server di metadati 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

Perché le mie richieste non rispondono?

Se crei un pool di thread su una richiesta, devi assicurarti di aver esplicitamente prima del termine della richiesta attuale.