在 liferay 中以编程方式创建站点(组)
Posted
技术标签:
【中文标题】在 liferay 中以编程方式创建站点(组)【英文标题】:Create sites(groups) programmatically in liferay 【发布时间】:2021-12-08 02:26:38 【问题描述】:过去一周我一直在努力完成这项工作,但我自己无法完成(我对 java 和 liferay 都是新手)。所以我希望有人能帮忙。
我正在尝试通过按一个按钮在 liferay 中创建网站,以便用户可以创建自己的网站。这是我已经拥有的一些代码:
public void addGroup(ActionRequest request, ActionResponse response)
ThemeDisplay theme = (ThemeDisplay) request.getAttribute(WebKeys.THEME_DISPLAY);
long userId = theme.getUserId();
String friendly = "/hilversum";
String name = "hilversum";
Map<Locale, String> nameMap = new HashMap<Locale, String>();
nameMap.put(LocaleUtil.NETHERLANDS, name);
try
GroupLocalServiceUtil.addGroup( userId, GroupConstants.DEFAULT_PARENT_GROUP_ID, "", 37632, GroupConstants.DEFAULT_LIVE_GROUP_ID,
nameMap, null, GroupConstants.TYPE_SITE_OPEN, false, GroupConstants.DEFAULT_MEMBERSHIP_RESTRICTION, friendly, true, true, new ServiceContext() );
catch (PortalException e)
e.printStackTrace();
当有人在带有 portlet actionURL 的表单上按下提交时,此方法在我的 jsp 中使用。 但是,当我按下按钮时,出现异常:com.liferay.portal.kernel.exception.GroupKeyException 在 com.liferay.portal.service.impl.GroupLocalServiceImpl.validateGroupKey(GroupLocalServiceImpl.java:4868) 在 com.liferay.portal.service.impl.GroupLocalServiceImpl.addGroup(GroupLocalServiceImpl.java:387) 在 com.liferay.portal.service.impl.GroupLocalServiceImpl.addGroup(GroupLocalServiceImpl.java:481)
我的代码做错了吗?还是我给 addGroup 方法的变量错了?
【问题讨论】:
【参考方案1】:您传递给 addGroup 方法的 nameMap 至少应该具有您的默认语言环境。换个试试
nameMap.put(LocaleUtil.NETHERLANDS, name);
通过
nameMap.put(LocaleUtil.getDefault(), name);
别忘了将名称翻译成默认的语言环境。
LocaleUtil 包是
import com.liferay.portal.kernel.util.LocaleUtil;
obs.:我正在使用 Liferay 版本 7.3.10 GA1
【讨论】:
以上是关于在 liferay 中以编程方式创建站点(组)的主要内容,如果未能解决你的问题,请参考以下文章
如何在 ios 应用程序中以编程方式获取任何站点上图像的 url?