Я пытаюсь реализовать разрешения (ресурсы и модели) на Liferay 7.1.Я заметил, что BaseModelPermissionChecker
теперь устарел (поэтому я не должен расширять его классы разрешений).Поэтому я попытался сделать, как указано в Официальном руководстве Liferay
Однако при развертывании моих служб OSGI контейнер OSGI показывает следующую ошибку (для разрешения модели и ресурса):
ERROR [Refresh Thread: Equinox Container: 80bbc977-c7cb-0018-1000-82f21869d6ec][com_liferay_training_space_gradebook_service:97] [com.a.b.c.service.permission.MyEntityPermission(3887)] Field _portletResourcePermission in component class com.a.b.c.service.permission.MyEntityPermission must not be static.
Вы получили эту ошибку?Я что-то пропустил?
РЕДАКТИРОВАТЬ
Создан компонент:
@Component(immediate = true, service = {})
public class BookResourcePermission {
public static final String ADD_BOOK = "ADD_BOOK";
@Reference(target = "(resource.name=com.x.y.mybook.model)", unbind = "-")
protected static void setPortletResourcePermission(PortletResourcePermission portletResourcePermission) {
_portletResourcePermission = portletResourcePermission;
}
public static boolean contains(PermissionChecker permissionChecker, long groupId, String actionId) {
return _portletResourcePermission.contains(permissionChecker, groupId, actionId);
}
private static PortletResourcePermission _portletResourcePermission;
}
Спасибо!