2016-05-16 5 views
3

私は仕事を通してサイトのプロパティを更新しています。ジョブは正常に実行され、正常に動作し、正しく更新され、失敗しなかったプロパティを更新します。サイトのプロパティを更新すると、すべてのページが消える(Sakai 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)); 
} 

ありがとうございます!

EDIT:新情報、私は前に現場セットアップから、その構造を再構築(サイトにアクセスしようとしたとき、私はこれがログに警告し得る:

org.sakaiproject.portal.charon.site.DefaultSiteViewImpl - Failed to set canAddSite for current user. Defaulting to false ...

答えて

1

堺サイトがロードされたときにこれがありますgetSitesこれらは遅延オブジェクトであり、すべてのメンバー変数がロードされていません。これは理想とはかけ離れており、これを実行するか、必要なデータをロードするときにSiteServiceが例外をスローする必要があります。

あなたがサイトを変更しているときにサイトの全部を完全にロードするあなたが変更を加える前に。

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

ありがとうございます、私は解決策を試して、フィードバックをお寄せください。私はこのようなことをほとんど試しましたが、SiteSeviceがサイトインスタンスをどのように正確に処理しているのかわからないので、問題を最悪にすることを恐れていました。 私はすでにいくつかのプロパティを同時に更新するメソッドを作成することで問題を軽減しています。 public void updateStringProperties(Site site、Hashmap properties) –

関連する問題