gpt4 book ai didi

java - 更新站点属性使所有页面消失(Sakai 2.9.3)

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:53:49 25 4
gpt4 key购买 nike

我正在通过作业更新我的站点属性。作业运行正常,它可以正常工作并更新属性,我希望它正确更新并且从未失败。

但是,当我保存网站时,它会弄乱我的页面,使它们消失。最糟糕的是,它并不总是发生@.@ 是什么让我发疯! =(

我确定工作运行正常,因为一旦我恢复所有页面(通过工作站点设置和站点编辑器),一切都会正常进行。这是我更新属性的方法(我已经尝试了属性编辑方式的两种选择:

@Override
public void updateStringProperty(Site site, String name, String value) {
try {
// ResourcePropertiesEdit rpe = site.getPropertiesEdit();
// rpe.addProperty(name, value);

ResourceProperties rp = site.getProperties();
rp.addProperty(name, value);

siteService.save(site);
} catch (IdUnusedException e) {
e.printStackTrace();
} catch (PermissionException e) {
e.printStackTrace();
}
}

它写在代理层上,我的应用程序在其中与 Sakai 接口(interface)对话,以将数据读/写到 Sakai 数据库(您可以从上面看到该站点的实例),这就是我获取要应用的站点列表的方式更改(也是 sakai 代理层):

@Override
public List<Site> getReadInWebSites(Long course) {
Map<String, String> m = new HashMap<String, String>();
m.put(Property.COURSE.getName(), Long.toString(course));
m.put(Property.COURSEFINISHED.getName(), Boolean.toString(false));

return new ArrayList<Site>(siteService.getSites(SelectionType.ANY,
null, null, m, SortType.CREATED_BY_ASC, null));
}

提前致谢!

编辑:新信息,当我尝试访问站点时(在通过工作站点设置重建其结构之前,我在日志中收到此警告:

org.sakaiproject.portal.charon.site.DefaultSiteViewImpl - 无法为当前用户设置 canAddSite。默认为 false ...

最佳答案

这是因为当使用 getSites 加载 Sakai Sites 时,它们是惰性对象并且没有加载它们的所有成员变量。这远非理想,SiteService 应该在您执行此操作时抛出异常或加载所需数据。

但是,要在修改站点时使其正常工作,请在进行更改之前先完全加载站点。

Site site = siteService.getSite(site.getId());
ResourceProperties rp = site.getProperties();
rp.addProperty(name, value);
siteService.save(site);

关于java - 更新站点属性使所有页面消失(Sakai 2.9.3),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37245297/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com