Preguntas frecuentes sobre el entorno de ejecución de App Engine Java 8

Las siguientes preguntas corresponden al entorno de ejecución estándar de App Engine Java 8.

¿Qué diferencias hay entre los entornos de ejecución estándar de Java 7 y Java 8?

En general, todas las características disponibles en el entorno de ejecución de Java 7 también deberían estar disponibles en el de Java 8.

Si el código de tu aplicación depende de la presencia de un administrador de seguridad de Java, o si la zona de pruebas de seguridad de Java 7 muestra algunas restricciones en la carga de clases, es posible que tu aplicación se comporte de manera diferente. Asegúrate de probar la aplicación con el entorno de ejecución de Java 8 antes de entregar solicitudes de clientes.

¿Puedo usar Kotlin con el entorno de ejecución de Java 8?

Sí. Consulta nuestros ejemplos de Kotlin en el repositorio de GitHub.

¿Puedo usar IntelliJ IDEA Community Edition con App Engine?

Sí. Hace falta la integración con Maven incorporada.

También puedes usar IntelliJ Ultimate Edition, que ofrece más características de desarrollo web de aplicaciones y está más integrado en el proceso de implementación de App Engine.

¿Funciona App Engine Cloud Endpoints v1.0 en el entorno de ejecución de Java 8?

No. Debes migrar a la versión 2.0 de Cloud Endpoints Frameworks.

¿Por qué ocurre el error java.lang.NoClassDefFoundError en las clases reempaquetadas?

Las clases internas reempaquetadas, como com/google/appengine/repackaged/com/google/common/collect/ImmutableList, ya no están disponibles en el entorno de ejecución de Java 8, incluso si están definidas en versiones anteriores del JAR de la API de App Engine.

Si necesitas usar las clases reempaquetadas en tu aplicación de Java 8, configura appengine.api.legacy.repackaging como verdadero en appengine-web.xml. Por ejemplo:

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

Te recomendamos reemplazar estas clases con otras que sean públicas y no estén reempaquetadas.

¿Puedo dividir el tráfico entre Java 7 y Java 8?

Sí. Cada versión del servicio o módulo puede usar una versión diferente del entorno de ejecución y se admite la división del tráfico.

¿Qué tratamiento reciben los subprocesos de Java 8 cuando una instancia no recibe solicitudes?

Los subprocesos creados con las API de App Engine continuarán funcionando como antes.

Escalamiento automático Escalamiento manual Escalamiento básico
La instancia finaliza debido a la falta de solicitudes. La instancia finaliza después de la última solicitud (valor predeterminado: 5 minutos) Se ejecuta ininterrumpidamente.

¿Qué características del servidor de metadatos son compatibles con el entorno de ejecución de App Engine Java 8?

El entorno de ejecución de Java 8 es compatible con las siguientes URL del servidor de metadatos.

/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 qué se interrumpen mis solicitudes?

Si creas un grupo de subprocesos en una solicitud, debes asegurarte de cerrarlo explícitamente antes de que finalice la solicitud en curso.

¿Te ha resultado útil esta página? Enviar comentarios:

Enviar comentarios sobre...

Entorno estándar de App Engine para Java 8