在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。
答案 0 :(得分:0)
注册servlet时,会调用Servlet.init
。也许你可以在那里做一些检查?