Register ServletRequestListener from OSGi Bundle



我有一个打包在OSGi捆绑包中的JSR-356(WebSocket API(代码。 如果需要,servlet 通过 Apache Felix 加载代码。

我想注册一个 ServletRequestListener,我通常会把它放在 Web 描述符中:

<listener>
<listener-class>path.to.my.RequestListener</listener-class>
</listener>

但是由于捆绑包不在类路径中,因此不起作用。

如何注册 ServletRequestListener? 我在想也许有一种方法可以扫描注释,但不确定如何设置。 我的另一个担忧是许多用户禁用扫描以缩短启动时间。

侦听器的工作是初始化 HttpSession,以便我可以在 WebSocket 握手中检索 ServletContext。 如果有一种方法可以在没有听众的情况下实现这一目标,那么这对我来说会更好。

不确定这是否可以用规范完全解决。Pax 网站支持网络套接字。所以也许这可以帮助你:

请参阅pax Web Websocket示例

最新更新