0

我正在尝试让 SessionListener 与我的 JAX-RS JSON 通道一起工作。在黑暗中进行了一些探索,我试图实例化应该能够处理侦听器的 Pax-Whiteboard 环境,因此我已将捆绑包添加到我的 OSGi 环境中。现在我有以下错误:

[Blueprint Extender: 3] 错误 org.ops4j.pax.web.extender.whiteboard.internal.WebApplication - 为 [ListenerWebElement{mapping=DefaultListenerMapping{httpContextId=null,listener=org.example.MySessionListener@5c235feb}}] 跳过注册注册时出错 java.lang.UnsupportedOperationException: 内部错误: In use HttpService is not an WebContainer (from Pax Web)

这个错误是什么意思?这是否意味着 Pax 处理的 SessionListener 不能使用,因为 Pax 创建了自己的 HttpService,而我已经有了支持 JAX-WS 的那些?

更具体地说,有没有办法处理它?

4

1 回答 1

0

看起来您缺少一些 Pax-Web 捆绑包。OSGi HttpService 规范不提供 SessionListeners 的可能性,这只有在新的 OSGi R6 Http Whiteboard 规范中才有可能。根据您使用的 Pax-Web 版本,这是可能的,也可能是不可能的。但要实现这一点,尤其是对于 6.0 之前的版本,您还需要添加 Pax-Web-War,也许还需要将更多捆绑包添加到您的环境中。查看 Pax-Web 项目 Pax-Web-Integrationtests 基类的相应集成测试 这是运行 Pax-Web 所需的包的完整列表,包括带有 War 扩展,因此您可能需要删除一些。

于 2017-03-08T09:31:47.053 回答