从db访问角色数据

时间:2012-10-11 12:32:58

标签: liferay liferay-6

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

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

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。

2 个答案:

答案 0 :(得分: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

希望它可以帮助你,问候

答案 1 :(得分:0)

回答我自己的问题:

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

当我在portlet中使用相同的代码时,它工作得很好。