0

In liferay, I am trying to access the role data available in the database using the API.

I am using the com.liferay.portal.service.RoleLocalServiceUtil class to access Role's. Below is my code:

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

Role by Id 10138 exists in the database.

But the above throws the below exception: com.liferay.portal.kernel.bean.BeanLocatorException: BeanLocator has not been set 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(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) ..........

How do I set the BeanLocator? I have spent so much stupid time on it, please help!

PS: The above code is from a seperate servlet running on the same liferay server.

4

2 に答える 2

1


ClassLoader classLoader = (ClassLoader)PortletBeanLocatorUtil.locate(ClpSerializer.SERVLET_CONTEXT_NAME,"portletClassLoader");
ゲッターを呼び出す前に追加してみてください。http://www.liferay.com/zh/community/forums/-/message_boards/message/13302979およびhttp://liferay-blogging.blogspot.de/2011/03/dynamicquery-api-and-classloaders-inを参照してください。参照用の.html

お役に立てば幸いです、よろしく

于 2012-10-11T12:53:13.420 に答える
0

私自身の質問に答える:

これは、ロールデータアクセスが別のサーブレットから行われたために発生していました。

ポートレット内から同じコードを使用した場合、すべて正常に機能しました。

于 2012-10-16T08:23:49.930 に答える