Я новичок в веб-разработке на Java.
Я разрабатываю веб-сервис и выбрал для него REST / Джерси .
Я хочу инициировать некоторые вещи при запуске службы и сохранить их
на протяжении всего срока службы.
Первый вопрос: Является ли конструктор сервлета Джерси хорошим местом для этого?
По сути, я хочу загрузить файл config.ini, расположенный в моем каталоге WEB-INF.
После этой справки я понимаю, что мне нужен ServletContext для загрузки моего файла в качестве ресурса.
Однако, мне не ясно, как получить этот ServletContext в Jersey Servlet, так как это на самом деле не экземпляр сервлета, а скорее POJO с некоторыми аннотаций.
Я хотел попробовать этот совет , но атрибут "context" в конструкторе равен нулю. Я думаю, что Джерси может заполнить его после конструктора. Правильно?
Так как же правильно сделать это?
Вот мой код:
/** 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>";
}
}
Любая помощь будет высоко ценится.
Заранее спасибо,
Raphael