You are viewing a plain text version of this content. The canonical link for it is here.
Posted to pluto-user@portals.apache.org by michael freedman <mi...@oracle.com> on 2009/07/31 00:45:48 UTC
Using ServletRequestAttributeListener(s) in Pluto
Seems that in at least Pluto 1.x, if you register a
ServletRequestAttributeListener with your web application you are never
called because Pluto relies on cross context dispatching -- These
listeners are maintained in the servletContext hence with cross context
there are two involved (pluto's and the portlet app). In this case we
run into a mismatch where Pluto's context/listeners are used rather and
the portlet apps. I.e. The request is received/managed by the Pluto
context (the one that doesn't have the apps listeners registered --
context is transferred to the portlet app and the portlet app removed
the request attribute, the removal is actually handled by the request
instance in the Pluto context and hence the Pluto listeners are called
not the portlet app.
Anyone ever figure a way around this? Or is this one of those (generic)
servlet gotchas related to cross context?
-Mike-
Re: Using ServletRequestAttributeListener(s) in Pluto
Posted by Eric Dalquist <er...@doit.wisc.edu>.
This is a portlet spec issue. The 1.0 portlet spec does not define a way
to get behavior similar to ServletRequestAttributeListener. The fact
that Pluto uses a cross-context call to a special servlet to initiate
portlet rendering is an implementation detail that cannot be relied upon
when writing a 'portlet'. However if you have a
ServletRequestAttributeListener in the web.xml for your portlet
application and directly target a servlet of your own your listener
should be triggered.
-Eric
michael freedman wrote:
> Seems that in at least Pluto 1.x, if you register a
> ServletRequestAttributeListener with your web application you are
> never called because Pluto relies on cross context dispatching --
> These listeners are maintained in the servletContext hence with cross
> context there are two involved (pluto's and the portlet app). In this
> case we run into a mismatch where Pluto's context/listeners are used
> rather and the portlet apps. I.e. The request is received/managed by
> the Pluto context (the one that doesn't have the apps listeners
> registered -- context is transferred to the portlet app and the
> portlet app removed the request attribute, the removal is actually
> handled by the request instance in the Pluto context and hence the
> Pluto listeners are called not the portlet app.
>
> Anyone ever figure a way around this? Or is this one of those
> (generic) servlet gotchas related to cross context?
> -Mike-