Tôi cần tải tệp thuộc tính từ bình. Bình được bao gồm trong tập tin chiến tranh. Dưới đây là cấu trúcCách tải tài nguyên từ tệp jar được đóng gói trong tệp chiến tranh?
ROOT.war
WEB-INF
lib
my.jar
here my.jar has following structure
my.jar
com
test
myservlet.class
WEB-INF
test.property
Bây giờ tôi đã viết đoạn mã sau vào một trong servlet của tôi như sau:
InputStream stream = getServletContext().getResourceAsStream("/WEB-INF/test.properties");
Properties prop = new Properties();
prop.load(stream);
nhưng trên mã tôi có dòng như null. Nếu tôi đặt các tập tin bất động sản trong ROOT.war/WEB-INF nó hoạt động tốt. Tôi có ý tưởng hợp lý rằng nếu đường dẫn trong getResourceAsStream bắt đầu bằng '/' hơn tài nguyên tìm kiếm trong thư mục gốc. Nhưng làm thế nào tôi có thể đọc tài nguyên nằm trong một cái bình mà lại tìm thấy trong WEB-INF/lib của ứng dụng gốc?
Cảm ơn & Kính trọng, Amit Patel
... hoặc để nguyên mọi thứ như cũ và sử dụng "WEB-INF/test.property". –
@bkail, cũng có thể, nhưng không có lý do gì để sử dụng thư mục 'WEB-INF' vì nó không bao giờ có thể truy cập được bởi servletcontext. Nó cũng không có ý nghĩa khi đặt một quy ước thư mục WAR cụ thể trong một tệp JAR vani thuần túy. – BalusC
Đồng ý, không có nghĩa ngụ ý câu trả lời của bạn không chính xác. Chỉ cần cung cấp tùy chọn OP khác trong trường hợp thay đổi cấu trúc JAR là khó hoặc không thể vì một lý do nào đó. –