【问题标题】:Updating site property make all pages vanish (Sakai 2.9.3)更新站点属性使所有页面消失(Sakai 2.9.3)
【发布时间】:2016-05-16 00:57:29
【问题描述】:

我正在通过工作更新我的网站属性。作业运行正常,工作正常并更新了我希望它正确更新且永不失败的属性。

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

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

@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 接口进行对话,以在 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 - Failed to set canAddSite for current user. Defaulting to false ...

【问题讨论】:

    标签: java sakai


    【解决方案1】:

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

    但是,当您修改网站时,要使其正常工作,请先完全加载网站,然后再进行更改。

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

    【讨论】:

    • 谢谢,我将尝试解决方案并给您反馈。我几乎尝试过这样的事情,但我害怕让问题变得更糟,因为我不知道 SiteSevice 究竟如何处理站点实例(很高兴知道它的延迟加载)。我已经通过创建一个同时更新多个属性的方法来降低问题: public void updateStringProperties(Site site, Hashmap properties)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-12
    • 2016-08-30
    • 1970-01-01
    相关资源
    最近更新 更多