【发布时间】:2022-09-29 04:57:23
【问题描述】:
在 OSGi 标准模块(jar,而不是 wab)中,我公开了一些 Web 服务(使用 OSGi JAX-RS 白板)和使用 @HttpWhiteboardResource 的 index.html 静态文件(它本身与 OSGi HTTP 白板一起使用) )。
除了一件愚蠢的事情之外,一切都运行良好:我无法从根目录提供我的 index.html 文件。 (我想做 http://domain,而不是 http://domain/index.html)。
通常对此的解决方案是声明一个“欢迎页面”。唉,OSGi spec for the HTTP whiteboard 似乎不允许这样做。另一个(绝望的)解决方案是将root与@HttpWhiteboardResource.pattern绑定,但它不起作用(似乎合乎逻辑,root归白板所有)。
似乎pax web 可以使用a non-standard extension 解决此问题。但是,我使用的是Apache Felix http,但在他们的代码或文档中找不到对欢迎页面的单一引用。而且我不想改变它,因为它需要在一个非常复杂的解决方案中进行大量测试。
那么有人知道用标准的 OSGi 东西还是 Felix 特定的东西来解决我的问题的方法吗?谢谢!
-
实际上,OSGi 规范(来自 OSGi CMPN 的 HttpService、Whiteboard 和 WAB 规范)并未涵盖欢迎文件(以及 jsps、SCI、登录配置……)。这就是最初创建 Pax Web 的原因。最近,Pax Web 8 发布了,其中包含许多规范和稳定性改进,因此我建议您尝试一下。参见例如WhiteboardWelcomeFilesTest.java。
-
谢谢@GrzegorzGrzybek - 我想我毕竟必须尝试 pax 网络路由。我会暂时搁置这个问题,以防费利克斯出现奇迹;-)
-
@GrzegorzGrzybek 如果您想要积分,欢迎您在评论中添加答案 - 这确实是唯一的解决方案。
标签: osgi apache-felix pax-web osgi-http-service