Hi -

I’m trying to set up the Felix Servlet Bridge in Tomcat (8) as a proxy to a 
bunch of services running in an embedded OSGi container. 

I’ve registered the 
`org.apache.felix.http.proxy.impl.ProxyServletContextListener` in web.xml and 
I’ve got a servlet setup that uses the 
`org.apache.felix.http.proxy.DispatcherTracker` to dispatch request to the 
bridge (which is installed in the OSGi container).

The reason I’m using a custom servlet is because our OSGi container isn’t 
started until after the web-application have started (and the 
org.apache.felix.http.proxy.ProxyServlet requires that the BundleContext is 
defined on servlet initiation).

Everything seems to work, if I register servlets (in the OSGi container) to the 
path `/bundles/{servlet}`. That is — the OSGi component registering the Servlet 
*needs* to know to which context path the proxy servlet is mapped.

Is this by design, or did I miss some configuration setting or did I do 
something wrong in my setup?

The behaviour I was expecting was that when registering the servlet like this:

`httpService.registerServlet(“/demo”, theServlet, null, null);`

a call, through Tomcat, to `http://host:port/context/bundles/demo` 
<http://host:port/context/bundles/demo%60> would be dispatched to the 
`theServlet`.

If the component registering the Servlet needs to know the servlet-path of the 
proxy-servlet it’s really hard to make the servlet portable across different 
HttpService implementations :/

Best regards //Anders

Reply via email to