2013-12-17 33 views
0

在OSGi的世界裏,你可以一個Servlet使用擴展OSGi的HttpService的

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

因此,對於具有SymbolicNamefoo.bar捆綁註冊,我所能做的

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

我要擴展這個registerServlet方法來確保alias從軟件包的SymbolicName開始,即「/foo.bar」。我需要這樣做,以在基於它們的SymbolicName的包之間提供URL名稱空間隔離,以便它們不會意外地將servlet註冊爲相同的別名。

除了修改HttpService的實現之外,實現此目的的最佳方法是什麼?是否有任何服務擴展掛鉤可以添加我的驗證邏輯?我可以以某種方式擴展HttpService並覆蓋registerServlet方法並隱藏現有的方法嗎?

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

回答

0

當您註冊一個servlet時,調用Servlet.init。也許你可以在那裏做一些檢查?