在Jersey中用main方法中配置ServletContextListener
在Jersey中,可以使用ResourceConfig类来配置ServletContextListener。具体步骤如下:
- 创建
ServletContextListener的实现类,例如MyServletContextListener。
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
public class MyServletContextListener implements ServletContextListener {
@Override
public void contextInitialized(ServletContextEvent sce) {
System.out.println("ServletContext initialized");
}
@Override
public void contextDestroyed(ServletContextEvent sce) {
System.out.println("ServletContext destroyed");
}
}
- 在
main方法中创建ResourceConfig对象,并将MyServletContextListener注册到该对象中。
import org.glassfish.jersey.server.ResourceConfig;
public class MyApp {
public static void main(String[] args) {
ResourceConfig config = new ResourceConfig();
config.register(MyServletContextListener.class);
// ...
}
}
- 将
ResourceConfig对象传递给HttpServerFactory.create()方法创建HttpServer对象。
import org.glassfish.jersey.jdkhttp.JdkHttpServerFactory;
import org.glassfish.jersey.server.ResourceConfig;
import java.net.URI;
public class MyApp {
public static void main(String[] args) {
ResourceConfig config = new ResourceConfig();
config.register(MyServletContextListener.class);
URI uri = URI.create("http://localhost:8080/");
HttpServer server = JdkHttpServerFactory.createHttpServer(uri, config);
System.out.println("Server started on " + uri);
}
}
- 运行
main方法,启动Jersey应用程序。此时,MyServletContextListener的contextInitialized()方法将会被调用,输出"ServletContext initialized"。当应用程序停止时,MyServletContextListener的contextDestroyed()方法将会被调用,输出"ServletContext destroyed"
原文地址: https://www.cveoy.top/t/topic/ffOf 著作权归作者所有。请勿转载和采集!