【问题标题】:Access Role data from db从数据库访问角色数据
【发布时间】:2013-07-08 19:19:25
【问题描述】:

在 liferay 中,我正在尝试使用 API 访问数据库中可用的角色数据。

我正在使用 com.liferay.portal.service.RoleLocalServiceUtil 类来访问角色。 以下是我的代码:

Role role = RoleLocalServiceUtil.getRole(10138);
ans = ans+role.getName()+","+role.getRoleId();

数据库中存在 ID 为 10138 的角色。

但是上面抛出了以下异常: com.liferay.portal.kernel.bean.BeanLocatorException:尚未设置 BeanLocator com.liferay.portal.kernel.bean.PortalBeanLocatorUtil.locate(PortalBeanLocatorUtil.java:33) com.liferay.portal.service.RoleLocalServiceUtil.getService(RoleLocalServiceUtil.java:446) com.liferay.portal.service.RoleLocalServiceUtil.getRole(RoleLocalServiceUtil.java:166) com.bl.retail.controller.KPIController.changeAccess(KPIController.java:70) sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) ..........

如何设置 BeanLocator?我花了这么多愚蠢的时间,请帮忙!

PS:以上代码来自运行在同一个 liferay 服务器上的单独 servlet。

【问题讨论】:

    标签: liferay liferay-6


    【解决方案1】:

    尝试添加
    ClassLoader classLoader = (ClassLoader)PortletBeanLocatorUtil.locate(ClpSerializer.SERVLET_CONTEXT_NAME,"portletClassLoader");
    在你打电话给吸气剂之前。 参考http://www.liferay.com/zh/community/forums/-/message_boards/message/13302979http://liferay-blogging.blogspot.de/2011/03/dynamicquery-api-and-classloaders-in.html

    希望对你有帮助,问候

    【讨论】:

    • 谢谢。但是我可以在哪个包中找到 ClpSerializer 类?我找不到它的类路径。
    • hm 也许你可以试试Classloader loader = PortalClassLoaderUtil.getClassLoader()); 根据this 它应该可以开箱即用
    【解决方案2】:

    回答我自己的问题:

    这是因为角色数据访问是从另一个 Servlet 完成的。

    当我在 portlet 中使用相同的代码时,一切正常。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-11-25
      • 2010-11-23
      • 2016-07-13
      • 2019-01-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-31
      相关资源
      最近更新 更多