Thanks for the link, Carsten - I’ve had a look and, as you mentioned, the way 
Sling is mounting servlets isn’t comparable to how it’s done in a  straight 
forward web-app.

I’ve been digging through the code of org.apache.felix.http.(proxy | bridge) 
and debugging to see how it all fits together. As far as I can understand there 
is no way that the proxy+bridge can work if the ProxyServlet isn’t bound to 
“/*”.  I’d be happy to be proven wrong though :)

Maybe it’s possible to do some fancy HttpServletRequestWrapper hacking in order 
to pass on the request to the DispatcherServlet *without* the ProxyServlet path?

I’ve created a reference projekt @ 
https://github.com/metamorph/http-osgi-bridge 
<https://github.com/metamorph/http-osgi-bridge> that illustrates the issue. It 
embeds and starts Felix from the web-application then loads a set of bundles to 
enable the bridge component.

It would be great if you’d check my sample code and let me know if I’m doing 
something horribly wrong :)

Best regards //Anders


> On 04 Feb 2016, at 17:26, Carsten Ziegeler <cziege...@apache.org> wrote:
> 
> Anders Engström wrote
>> Hi, thanks for replying - 
>> 
>> that’s interesting.. code you provide a pointer to some sample code?
> 
> The code for Sling can be found at:
> 
> http://svn.apache.org/repos/asf/sling/trunk/launchpad/base/ 
> <http://svn.apache.org/repos/asf/sling/trunk/launchpad/base/>
> 
> It's a whole module and more complicated than what you probably need,
> but maybe it gives you a good hint
> 
> Carsten
> 
>> 
>> /Anders
>> 
>>> On 04 Feb 2016, at 16:45, Carsten Ziegeler <cziege...@apache.org> wrote:
>>> 
>>> Hi,
>>> 
>>> I dont know the details, but we use the bridge in Apache Sling and in
>>> some other projects. And if we register a servlet at /demo it's not
>>> directly reachable at /demo, but /context/{servlet}/demo
>>> 
>>> Carsten
>>> 
>>> Anders Engström wrote
>>>> 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`> 
>>>> <http://host:port/context/bundles/demo` 
>>>> <http://host:port/context/bundles/demo`>> 
>>>> <http://host:port/context/bundles/demo%60 
>>>> <http://host:port/context/bundles/demo%60> 
>>>> <http://host:port/context/bundles/demo%60 
>>>> <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
>>>> 
>>> 
>>> 
>>> 
>>> -- 
>>> Carsten Ziegeler
>>> Adobe Research Switzerland
>>> cziege...@apache.org <mailto:cziege...@apache.org> 
>>> <mailto:cziege...@apache.org <mailto:cziege...@apache.org>>
>>> 
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscr...@felix.apache.org 
>>> <mailto:users-unsubscr...@felix.apache.org> 
>>> <mailto:users-unsubscr...@felix.apache.org 
>>> <mailto:users-unsubscr...@felix.apache.org>>
>>> For additional commands, e-mail: users-h...@felix.apache.org 
>>> <mailto:users-h...@felix.apache.org> <mailto:users-h...@felix.apache.org 
>>> <mailto:users-h...@felix.apache.org>>
>> 
> 
> 
> 
> -- 
> Carsten Ziegeler
> Adobe Research Switzerland
> cziege...@apache.org <mailto:cziege...@apache.org>
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@felix.apache.org 
> <mailto:users-unsubscr...@felix.apache.org>
> For additional commands, e-mail: users-h...@felix.apache.org 
> <mailto:users-h...@felix.apache.org>

Reply via email to