Soy algo nuevo en el desarrollo web con Java. Estoy desarrollando un servicio web y he elegido REST/Jersey para él.Jersey/ServletContext y carga de recursos en el inicio
Quiero iniciar algunas cosas en el inicio del servicio y mantenerlas a lo largo de la vida útil del servicio.
Primera pregunta: ¿Es el constructor del Jersey Servlet un buen lugar para hacerlo?
Básicamente, lo que quiero hacer es cargar un archivo config.ini ubicado en mi directorio WEB-INF. Después de this help, entiendo que necesito un ServletContext para cargar mi archivo como recurso.
Sin embargo, no está claro para mí cómo conseguir este ServletContext en un Jersey Servlet, ya que no es realmente una instancia de un servlet, sino más bien un POJO con algunas anotaciones. Quería probar this tip, pero el atributo "contexto" es nulo en el constructor. Creo que Jersey podría poblarlo después del constructor. Correcto ?
Entonces, ¿cómo es la forma correcta de hacerlo?
Aquí está mi código hasta ahora:
/** Main REST servlet */
@Path("/")
public class Servlet {
// ----------------------------------------------------
// Constants
// ----------------------------------------------------
static private final String CONFIG_PATH = "/WEB-INF/config.ini";
// ----------------------------------------------------
// Attributes
// ----------------------------------------------------
/** Context */
@Context ServletContext context;
// ----------------------------------------------------
// Constructor
// ----------------------------------------------------
/** Init the servlet */
public Servlet() {
// Load config.ini from WEB-INF
Config.config = new Config(
this.context.getResourceAsStream(CONFIG_PATH));
// FAIL! this.context is null ...
}
// ----------------------------------------------------
// URI Handlers
// ----------------------------------------------------
/** Welcome page */
@GET
@Path("/")
@Produces(MediaType.TEXT_HTML)
public String welcome() {
return "<h1>Hi there.</h1>";
}
}
sería muy apreciada Cualquier ayuda. Gracias de antemano,
Raphael
Hola, gracias por su ayuda. Esto parece más claro de esta manera, ¡y esto funciona! –
No estoy seguro de lo que hizo ya que esto no funciona: Jersey lo come y el código, como está escrito en el tutorial, nunca se llama bajo un servlet ReST de Jersey. –