¿Cómo desplegar una aplicación JAX-RS?

La especificación JAX-RS 1.1 dice en la página 6:

Si no hay una subclase de aplicación, el servlet agregado DEBE ser nombrado:

javax.ws.rs.core.Application

¿Qué es el servlet añadido? ¿Podría ser un servlet arbitrario?

Si una subclase de aplicación está presente y ya hay un servlet definido que tiene un parámetro de inicialización de servlet llamado:

javax.ws.rs.Application

Una vez más, ¿qué es "un servlet" aquí?

Si hay una subclase de la aplicación que no está siendo manejada por un servlet existente, entonces el servlet agregado por el ContainerInitializer DEBE ser nombrado con el nombre completo de la subclase de la aplicación.

¿Significa "el servlet agregado por el ContainerInitializer" que los servlets se agregan automáticamente? ¿Cómo se vería una configuración?

En este momento no uso una clase de aplicación ni un web.xml y funciona (con GlassFish 3.1). ¿Este mecanismo de implementación requiere un análisis de ruta de clase completa, que podría ser lento con bibliotecas grandes?

¿Cómo desplegar en un contenedor Servlet?

Hay un número confuso de opciones de configuración en la web. Mira estoEjemplo con parámetros de contexto en el web.xml (no funciona para mí!). ¿Cuál es la forma preferida de implementar una aplicación JAX-RS?

Respuestas a la pregunta(4)

Su respuesta a la pregunta