我在alfresco中有一个简单的webcript:读取属性,并根据其值创建一个json响应。另一个webscript负责更新此属性。但是,原始脚本的响应有时会被缓存,而不是所有客户端。
因此,对于一个客户端,我获得当前状态,而另一个客户端获得之前的状态。
webscript基本上从节点读取属性(nodeRef是在webscript请求中发送的):
var status = doc.properties["my:customProp"];
switch (status) {
case "something":
model.prop = "FirstResponse";
break;
case "somethingElse":
model.prop = "SecondResponse";
break;
default:
model.prop = "ThirdResponse";
}
freemarker模板然后解析prop并为响应创建一个json输出。
现在,这应该简单明了。用例如下: 1.当用户#1首次访问文档时,状态设置为“某事”。他得到了一个“FirstResponse”,并通过webscript改变了它。
当他再次获得该文件时,他得到了第二个回复。
但是如果第二个客户端访问同一节点并请求响应,它仍然会得到第一个响应,甚至更多,当我尝试读取该道具时,我得到了“旧”道具。
所以我从两个客户端刷新脚本并读取此属性,一个客户端获取一个值,另一个获取另一个值。
我唯一的猜测(到目前为止)是这是一个缓存问题。那么,我该如何防止缓存?它发生在哪里?休眠?某种存储库缓存?如何摆脱它?
答案 0 :(得分:0)
答案 1 :(得分:0)
嗯,在这里发现了问题,道具被定义为d:mltext。所以它不是缓存信息,只是多语言信息。我不得不扩展模型并添加一个多语言的新道具,现在所有用户都拥有相同的信息。