1

ドキュメントをフェッチしながら Alfresco のログを見ていると、同じドキュメント (同じ ID) を取得しようとするたびに、リモート リポジトリに対して GET リクエストが行われていることがわかります。

session.getDefaultContext().setCacheEnabled(true)何度か呼び出す前に明示的に呼び出すテストを実行しましたsession.getObject(id)。GETコマンドが毎回発行されるため、キャッシュは無視されているようです。

私が見逃しているセッションに設定する必要がある他のプロパティがあると思いますか? それとも、Alfresco の xml 構成でしょうか。

ありがとう

4

2 に答える 2

2

ドキュメントの取得に使用しているドキュメント ID によって異なります。Alfresco CMIS ドキュメント ID は次のようになります (「;vv」の部分に注意してください)。

workspace://SpacesStore/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx;v.v

Alfresco は、ノード ID のように見えるドキュメント ID (「;vv」の部分が欠落していることに注意してください) も受け入れてドキュメントを取得しますが、常に上記の形式を返します。

workspace://SpacesStore/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

OpenCMIS キャッシュは、最初のドキュメント ID 形式 (";vv" 部分を含む) をキャッシュ キーとして使用します。2 番目の形式を使用している場合、キャッシュ ヒットは決して得られず、クライアントはリポジトリにドキュメント データを再度要求する必要があります。

于 2013-10-14T19:35:06.637 に答える
0

getObject では機能しているように見えますが、実際にコンテンツを取得するためにキャッシュは使用されません。

Document document = (Document)session.getObject(id); document.getContentStream().getStream();

最後の行は GET をトリガーしますalfresco_root/folder/content/doc_name?id=id;version

ドキュメントコンテンツを保存するためにクライアントキャッシュを実際に使用できますか?

于 2013-10-15T12:02:34.357 に答える