Symptoms:
PumaLocator
is unusable, every findXXX
-method returns empty results or throws an exception because nothing was found.
Analysis:
The problem seems that, due to the ICEfaces specific architecture, the methodGenericPortlet.doView
is invoked only for the first time the Portlet is loaded, and not for the following (AJAX) page updates, e.g. in case of a called ActionListener.
If I use PumaLocator
inside the doView-method, everything works fine.
I tried the following attempts yet:
- Get the
PumaLocator
indoView
, put it into Session and use it later - didn't work - Get the
RenderRequest
indoView
, put it into Session and use it later to get aPumaLocator
by passing that request - didn't work开发者_运维问答
I would be very glad to have any hints. Thank you!
PUMA checks the authorization for results by using information found in the Context. You must add JavaEE security roles in the deployment descriptor for the AJAX backend servlets the ICEFaces uses. As a thumb of rule if request.getRemoteUser() and request.getUserPrincipal() return something besides null you know PUMA will work. Otherwise it will NOT work and that is intended behaviour.
Alternatively you can attempt to disable the security checks of PUMA like this.
精彩评论