从OSGi Bundle注册ServletRequestListener

时间:2017-07-13 14:42:20

标签: osgi servlet-3.0 osgi-bundle servlet-listeners jsr356

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

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

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

但由于捆绑包不在类路径中,因此无法工作。

如何注册ServletRequestListener?我想也许有扫描注释的方法,但我不知道如何设置它。另一个问题是许多用户禁用扫描以缩短启动时间。

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

1 个答案:

答案 0 :(得分:0)

不确定这是否可以通过规格完全解决。 Pax web有websocket支持。所以这可能对你有所帮助:

请参阅pax web websocket example