Я как бы новичок в веб-разработке с Java. Я разрабатываю веб-сервис, и я выбрал REST/Jersey для этого.Джерси/ServletContext и загрузка ресурсов при запуске
Я хочу, чтобы начать некоторые вещи при запуске службы и сохранить их всю жизнь службы.
Первый вопрос: Является ли конструктор Джерси Сервлет - хорошее место для этого?
В принципе, я хочу загрузить файл config.ini, расположенный в моем каталоге WEB-INF. После this help, я понимаю, мне нужен ServletContext для загрузки моего файла в качестве ресурса.
Однако, мне не понятно, как получить этот ServletContext в Джерси Servlet, как это на самом деле не экземпляр сервлета, а скорее POJO с некоторыми примечаниями. Я хотел попробовать this tip, но атрибут «context» имеет значение null в конструкторе. Я думаю, что Джерси может заполнить его после конструктора. Правильно ?
Как правильно это сделать?
Вот мой код до сих пор:
/** 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>";
}
}
Любая помощь будет оценена. Спасибо заранее,
Рафаэль
привет, спасибо за помощь. Это кажется более ясным таким образом, и это работает! –
Не уверен, что вы делали, так как это не работает: Джерси ест его, а код, как написано в учебнике, никогда не вызывается под сервлетом ReST. –