我正在通過工作更新我的網站屬性。作業運行正常,它的工作正確,更新了我希望它正確更新的屬性,從未失敗。更新網站屬性使所有頁面消失(Sak 2.9.3)
但是,當我保存網站時,它會弄亂我的頁面,使它們消失。最糟糕的是,它並不總是發生@。@是什麼讓我發瘋? =(
我確定這項工作是正確的,因爲一旦我得到所有的頁面(通過工作現場設置和網站編輯器)的東西得到所有工作在這裏我更新屬性的方法(我已經嘗試了兩個選項財產版方式:
@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();
}
}
這是寫的代理層,其中我與酒井接口應用會談,讀/寫數據到酒井DATABSE上(你可以看到該網站來自上面的實例),它是我如何得到應用更改的網站列表(也包括代理層):
@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 ...
謝謝,我會嘗試解決方案並給你反饋。我幾乎嘗試過這樣的事情,但我害怕讓問題變得最糟糕,因爲我不知道SiteSevice究竟是如何處理站點實例的(很高興知道它的延遲加載)。 我已經通過創建一個同時更新多個屬性的方法來降低問題: public void updateStringProperties(Site site,Hashmap properties) –