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