Jersey初始化功能:在Application对象或ServletContextListner中

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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。

以上是关于Jersey初始化功能:在Application对象或ServletContextListner中的主要内容,如果未能解决你的问题,请参考以下文章

如何让我的Jersey 2端点在启动时急切地初始化?

Jersey REST (GET) throwing MessageBodyWriter not found for media type=application/xml

Jersey REST 客户端 - 将自定义 MediaType 视为 MediaType.APPLICATION_JSON

找不到 MessageBodyWriter 类型的响应对象:com.sun.jersey.api.json.JSONWithPadding 媒体类型:application/x-javascript

何时在 Jersey 资源中使用 @Singleton

在API上的“post”方法获取“org.glassfish.jersey.message.internal.HeaderValueException”错误