[
https://issues.apache.org/jira/browse/FELIX-4589?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14079163#comment-14079163
]
Victor Bashurov commented on FELIX-4589:
----------------------------------------
RequestDispatcher rd = req.getRequestDispatcher(ForwardServlet.SERVLET_ALIAS);
works for the sample from bitbucket [https://bitbucket.org/vbashur/diff/src]
but doesn't work for my other code. Unfortunately, cannot provide code snippet.
The workaround with using request object to obtain request dispatcher cannot be
applied in a cross-context modules.
For example
Bundle 1 - /servletbridge/service
- /servletbridge/forward
Bundle 2 - /servletmain
Within req.getRequestDispatcher it's okay to forward requests between servlets
in bundle 1, but bundle 2 is unreachable.
To forward to Bundle 2 we need to perform:
Servlet Context sc = getServetContext().getContext("/servletmain");
RequestDispatcher rd = sc.getRequestDispatcher("/");
rd.include(request, response); // welcome to the endless loop
> Problem with forwarding from one servlet to another
> ---------------------------------------------------
>
> Key: FELIX-4589
> URL: https://issues.apache.org/jira/browse/FELIX-4589
> Project: Felix
> Issue Type: Bug
> Components: HTTP Service
> Affects Versions: http-2.3.0
> Reporter: Victor Bashurov
>
> Like in an issue FELIX-2774
> (https://issues.apache.org/jira/browse/FELIX-2774) I'd like to have a several
> servlet bunles installed with embedded OSGI framework. I'm using servlet
> bridge for request's management between sevlets bundles. In order to pass the
> information between servlets I want to use request dispatcher to forward (or
> include) http queries from one servlet to another.
> Even when I have two servlets registered in one bundle I cannot make a
> forwarding from one servlet to another.
> ServiceTracker
> httpService.registerServlet(TestServlet.SERVLET_ALIAS, new
> TestServlet("Test servlet"), null, null);
> httpService.registerServlet(ForwardServlet.SERVLET_ALIAS, new
> ForwardServlet("Forward servlet"), null, null);
> Trying to do the following in a TestServlet doGet method will cause error:
> RequestDispatcher rd =
> getServletContext().getRequestDispatcher(ForwardServlet.SERVLET_ALIAS);
> rd.forward(req, res);
> For org.apache.felix.http.bridge-2.0.2.jar error will be NullPointerException
> on 'rd' variable, for version 2.2.0 the same, but for version 2.3.0 it's
> going to be endless loop and stackoverflow error.
> More code about the problem here: https://bitbucket.org/vbashur/diff/src
> (servletbundle project)
--
This message was sent by Atlassian JIRA
(v6.2#6252)