liferay 6.2 addDLFolder失败

时间:2014-08-27 05:23:44

标签: web-services liferay

我尝试为外部系统构建一个Web服务来上传文档。 每个用户创建一个唯一的文件夹来存储他自己上传的文档。 为此,我想创建具有唯一名称的不同文件夹。 我查找了API并找到DLFolderLocalServiceUtil.addFolder(参数列表太长而无法输入)方法。

param serviceContext是必需的,我似乎无法找到检索它的方法。 所以,我把NULL改为。在构建和部署之后,我从客户端调用包含addFolder()的方法,在服务器上发生NullPointerException,并在客户端上发生轴异常。

的faultcode:

{http://schemas.xmlsoap.org/soap/envelope/}Server.userException, faultString: java.rmi.RemoteException.

是因为我将NULL作为参数而不是serviceContext的实例?

如果是这样,我如何获得serviceContext的实例?如果我不能,那还有什么问题呢?

这是我的参数表:

DLFolderLocalServiceUtil.addFolder(user.getUserId(), user.getGroupId(), user.getGroupId(), true, 10157, "test", "description", false, null);

1 个答案:

答案 0 :(得分:0)

您也可以尝试DLAppLocalServiceUtil.addFolder

同样,服务上下文是一个参数,但我能够创建一个包含以下内容的文件夹

final Folder folder = DLAppLocalServiceUtil.addFolder(
                    getThemeDisplay().getUserId(),
                    getThemeDisplay().getScopeGroupId(),
                    DLFolderConstants.DEFAULT_PARENT_FOLDER_ID,
                    "Folder Name",
                    "Folder Description",
                    new ServiceContext());

在我的特定用例中,我使用请求对象中的ThemeDisplay来组织我的Document Media元素:

(ThemeDisplay)request.getAttribute(WebKeys.THEME_DISPLAY)

注意:此外,在我的特定用法中,触发文件夹创建的用户将具有提升的权限,因为此类权限可能是非管理员用户的问题。