泽西岛 2 ApplicationEventListener onEvent() 未调用

Jersey 2 ApplicationEventListener onEvent() not called

ApplicationEventListener#onEvent 从未被调用。可能有什么问题 here.The 使用了资源配置 class,我可以调用 API。

<servlet>
    <servlet-name>MyApplication</servlet-name>
    <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
    <init-param>
        <param-name>javax.ws.rs.Application</param-name>
        <param-value>com.MyApplication</param-value>
    </init-param>
</servlet>

<servlet-mapping>
    <servlet-name>MyApplication</servlet-name>
    <url-pattern>/*</url-pattern>
</servlet-mapping>

应用配置:

public class MyApplication extends ResourceConfig{
    @NameBinding
    @Retention(RetentionPolicy.RUNTIME)
    public @interface Secured {}

    public MyApplication(){

        register(com.UserLogin.class);

        register(com.MyApplicationEventListener.class);
    }
}

除非您发出请求,否则 Jersey 不会完全启动,因此永远不会通过仅启动和停止服务器来调用侦听器。您需要在 web.xml 中为 servlet 配置设置 <load-on-startup>1</load-on-startup>。这将导致 Jersey 在服务器启动时完全加载。