Tôi đang tạo một ứng dụng web trong Tomcat bằng cách sử dụng áo. Tôi đã không tạo ra một Servlet, tôi chỉ sử dụng ServletContainer jersey và một số lớp tài nguyên.Nhận dữ liệu cấu hình từ web.xml khi sử dụng một bộ ServletContainer
web.xml của tôi:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5">
<servlet>
<servlet-name>Jersey REST Service</servlet-name>
<servlet-class>
com.sun.jersey.spi.container.servlet.ServletContainer
</servlet-class>
<init-param>
<param-name>com.sun.jersey.config.property.packages</param-name>
<param-value>com.mycompany.myproduct.rest</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Jersey REST Service</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
</web-app>
webapp của tôi cần phải đọc một số giá trị cấu hình. Tôi có ấn tượng rằng cách tốt nhất để làm điều này là với context-Params, như sau:
<web-app>
...
<context-param>
<description>This is a context parameter example</description>
<param-name>ContextParam</param-name>
<param-value>ContextParam value</param-value>
</context-param>
</web-app>
Đây có phải là cách tốt nhất không? Làm thế nào tôi có thể truy cập các tham số ngữ cảnh từ các lớp tài nguyên của tôi?
Dưới đây là một lớp tài nguyên Ví dụ:
@Path("/api/ping")
public class PingResource {
@GET
@Produces(MediaType.TEXT_PLAIN)
public String helloWorld() {
return "pong";
}
}
này có vẻ tốt. Nhưng tôi giả sử nó trả về một param init. Điều gì về một param ngữ cảnh? Tôi không thấy làm thế nào để có được nó từ một ServletContext. – tallseth
Không hoàn toàn ... hãy xem http://stackoverflow.com/questions/2069902/dd-elements-context-param-and-init-param-both-use-the-getinitparameter-me –
Tôi đã thử điều này, nhưng ngữ cảnh là null. – tallseth