Tôi là người mới trong phát triển web với Java. Tôi đang phát triển một dịch vụ web và tôi đã chọn REST/Jersey cho dịch vụ đó.Jersey/ServletContext và tải tài nguyên khi khởi động
Tôi muốn bắt đầu một số nội dung khi khởi động dịch vụ và giữ chúng tất cả trong suốt vòng đời của dịch vụ.
Câu hỏi đầu tiên: Là người xây dựng của Jersey Servlet là một nơi tốt để làm điều đó?
Về cơ bản, những gì tôi muốn làm là tải tệp config.ini nằm trong thư mục WEB-INF của tôi. Theo dõi this help, tôi hiểu rằng tôi cần ServletContext để tải tệp của tôi dưới dạng tài nguyên.
Tuy nhiên, nó không phải là rõ ràng với tôi làm thế nào để có được điều này ServletContext trong một Jersey Servlet, vì nó không phải là thực sự là một thể hiện của một servlet, mà đúng hơn là một POJO với một số chú thích. Tôi muốn thử this tip, nhưng thuộc tính "ngữ cảnh" là null trong hàm tạo. Tôi nghĩ rằng Jersey có thể điền nó sau hàm tạo. Đúng ?
Vậy làm cách nào để thực hiện điều này?
Đây là mã của tôi cho đến nay:
/** 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>";
}
}
Bất kỳ trợ giúp sẽ được nhiều đánh giá cao. Cảm ơn trước,
Raphael
Xin chào, cảm ơn sự giúp đỡ của bạn. Điều này có vẻ rõ ràng hơn theo cách này, và điều này hoạt động! –
Không chắc chắn những gì bạn đã làm như thế này không hoạt động: Jersey ăn nó và mã, như được viết trong hướng dẫn, không bao giờ được gọi dưới một servlet Jersey ReST. –