Не удалось получить Liferay вошедший в систему UserId - PullRequest
0 голосов
/ 20 мая 2019

Я пытаюсь получить liferay ID пользователя (я использую primefaces 6.2 в Liferay 7).

Что я пробовал до сих пор:

HttpServletRequest request = (HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest();

ThemeDisplay td  =(ThemeDisplay)request.getAttribute(WebKeys.THEME_DISPLAY);
long userId = td.getUserId();

Я получаю следующую ошибку:

ERROR [stderr] (default task-49) java.lang.ClassCastException: com.liferay.faces.bridge.ext.filter.internal.ResourceRequestBridgeLiferayImpl cannot be cast to javax.servlet.http.HttpServletRequest

Я искал проблему, но не смог найти работающее решение.Любая помощь будет высоко ценится.

Заранее спасибо.


Я также пытался использовать PortletRequest.Ниже приведен код.

PortletRequest request = (PortletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest();

ThemeDisplay td  =(ThemeDisplay)request.getAttribute(WebKeys.THEME_DISPLAY);
User user = td.getUser();

Но теперь класс ThemeDisplacy не найден

java.lang.NoClassDefFoundError: com/liferay/portal/theme/ThemeDisplay: javax.el.ELException: java.lang.NoClassDefFoundError: com/liferay/portal/theme/ThemeDisplay

Я не уверен, где мне не хватает.

Спасибо

1 Ответ

2 голосов
/ 20 мая 2019

Чтобы получить объект Liferay User, вы можете использовать следующий фрагмент:

FacesContext facesContext = FacesContext.getCurrentInstance();
ExternalContext externalContext = facesContext.getExternalContext();
PortletRequest portletRequest = (PortletRequest) externalContext.getRequest();
User u = PortalUtil.getUser(portletRequest);

Пожалуйста, прочитайте также эту статью о возвращаемом значении ExternalContext.getRequest () - это может быть причиной вашей ошибки приведения. Далее в статье объясняется, что: «метод ExternalContext.getRequest () возвращает Object вместо javax.servlet.http.HttpServletRequest. Когда этот метод используется на портале, объект может быть приведен к javax.portlet.PortletRequest.»

...