Jersey 2 ApplicationEventListener onEvent()未被调用

时间:2017-01-26 10:41:13

标签: java jax-rs jersey-2.0

永远不会调用ApplicationEventListener#onEvent。这里可能有什么问题。使用资源配置类,我可以调用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);
    }
}

1 个答案:

答案 0 :(得分:1)

除非您提出请求,否则Jersey将无法完全启动,因此只需启动和停止服务器即可调用侦听器。您需要在web.xml中为servlet配置设置<load-on-startup>1</load-on-startup>。这将导致Jersey在服务器启动时完全加载。