我有一个打包在OSGi包中的JSR-356(WebSocket API)代码。如果需要,servlet通过Apache Felix加载代码。
我想注册一个ServletRequestListener,我通常将它放在Web描述符中:
<listener>
<listener-class>path.to.my.RequestListener</listener-class>
</listener>
但由于捆绑包不在类路径中,因此无法工作。
如何注册ServletRequestListener?我想也许有扫描注释的方法,但我不知道如何设置它。另一个问题是许多用户禁用扫描以缩短启动时间。
侦听器的工作是初始化HttpSession,以便我可以在WebSocket握手中检索ServletContext。如果有一种方法可以在没有听众的情况下实现这一点,那么这对我来说会更好。