仕事を通じてサイトのプロパティを更新しています。ジョブは正常に実行され、適切に機能し、プロパティを更新します。適切に更新し、失敗することはありません。
しかし、サイトを保存すると、ページが台無しになり、ページが消えてしまいます。@.@ 何が私を夢中にさせているのでしょう! =(
すべてのページを (ワークサイトのセットアップとサイト エディターを介して) 戻すと、すべてが機能するようになるため、ジョブは正しく実行されていると確信しています。ここでは、プロパティを更新する方法を示します (プロパティ編集方法の両方のオプションを既に試しました。
@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 データベースにデータを読み書きします (サイトのインスタンスが上から来るのを見ることができます)。変更を適用するサイトのリストを取得する方法です (また、酒井プロキシ層):
@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 ...