JAX-RS:如何在启动时运行方法(没有servlet)

时间:2018-10-18 00:23:44

标签: jersey jax-rs

我有一个JAX-RS(Jersey)服务器,可以使用它注册和绑定我的东西。

我想在服务器启动时打印横幅。我想使用JAX-RS框架 不是 来执行此操作,该平台是Web服务器的平台(即没有Jetty,Netty,Thorntail等钩子)。

我看到了以下内容,其中提到了久经考验的真正的Servlet处理方式: Jax rs: How can I run a method automatically everytime my server restarts?,但这不起作用,因为我没有在服务器中运行servlet容器,因此永远不会进行生命周期调用。

我认为必须有一个JCA类型的对象可以在Application / ResourceConfig中注册,并且具有这样的生命周期调用,但是我什至找不到任何类型的列表您可以实际注册的东西。

不用抱怨(但是我会),但是我无法决定这是否那么困难,因为当他们将项目移至日食时,他们破坏了到旧官方文档的所有超链接,或者像Spring这样的隐式链接,只能通过github's别人的代码并意识到'哦,我不知道你能做到这一点'来实现。

1 个答案:

答案 0 :(得分:2)

Jersey有Event Listeners。您可能会想使用ApplicationEventListenerApplicationEvent.Type来打印横幅,INITIALIZATION_FINISHED

public class MyApplicationEventListener
            implements ApplicationEventListener {

    @Override
    public void onEvent(ApplicationEvent event) {
        switch (event.getType()) {
            case INITIALIZATION_FINISHED:
                printBanner();
                break;
        }
    }

    @Override
    public RequestEventListener onRequest(RequestEvent requestEvent) {
        return null;
    }
}