扩展OSGi的HttpService

时间:2013-12-17 22:48:07

标签: java osgi

在OSGi世界中,您可以使用

注册Servlet
HttpService.registerServlet(String alias, Servlet servlet, Dictionary initParams, HttpContext context);

因此,对于包含SymbolicName foo.bar的捆绑包,我可以

HttpService.registerServlet("/foo", new FooServlet(), null, null);

我想扩展这个registerServlet方法,以确保alias以包的SymbolicName开头,即“/foo.bar”。我需要这样做以基于它们的SymbolicName在bundle之间提供URL名称空间隔离,因此它们不会意外地在相同的别名中注册servlet。

除了修改HttpService的实现之外,实现此目的的最佳方法是什么?是否有任何服务扩展钩子我可以添加我的验证逻辑?我可以以某种方式扩展HttpService并覆盖registerServlet方法并隐藏现有方法吗?

我在桥接模式下使用Apache Felix。

1 个答案:

答案 0 :(得分:0)

注册servlet时,会调用Servlet.init。也许你可以在那里做一些检查?