【Jersey初始化功能(在Application对象或ServletContextListner中)】智者不为愚者谋,勇者不为怯者死。这篇文章主要讲述Jersey初始化功能:在Application对象或ServletContextListner中相关的知识,希望能为你提供帮助。
我有一个使用Servlet 3.0的Jersey应用程序。我有一个在servlet初始化时使用的javax.ws.rs.Application。
public class MyApplication extends ResourceConfig {....}
我有一些应该在servlet初始化时运行的逻辑。我可以将这个逻辑放在MyApplication的构造函数中,或者我可以定义一个ServletContextListner。
public class Config implements ServletContextListener {@Override
public void contextInitialized(ServletContextEvent event) {
// Do stuff during server startup.
}...}
什么是正确的方法?
从Jersey文档中看来,这不是Application对象的预期用例。
JAX-RS提供了一个部署无关的抽象类Application,用于声明根资源和提供程序类,以及根资源和提供程序单例实例。 Web服务可以扩展此类以声明根资源和提供程序类。答案MyApplication构造函数中的任何逻辑只会在收到的第一个请求中执行。
如果需要逻辑在servlet初始化时运行,则应使用ServletContextListner。
推荐阅读
- Ionic Cordova构建android无法正常工作
- Jersey Exception Mapper不处理Resource Constructor中的异常
- java.lang.NoSuchMethodError(org.glassfish.jersey.server.ApplicationHandler。)
- 在ExceptionMapper中注入单例
- Jersey(如何注册省略某些子类的ExceptionMapper())
- 在Jersey webapp中运行Angular2应用程序
- Jersey ExceptionMapper未被调用
- 找不到模块(无法解析'./AppRoutes')
- 将Redux SubApp与React Router配合使用