gpt4 book ai didi

java - 查询远程服务器时如何防止 JCR 节点的本地缓存?

转载 作者:行者123 更新时间:2023-12-01 13:21:12 24 4
gpt4 key购买 nike

我有一些测试代码,用于检查 JCR 节点上的属性值,对被测系统执行外部操作,然后检查同一 JCR 节点上相同属性的值以检查它是否正确实际上已经改变了。

我遇到的问题是第一个查询之后的所有后续查询都返回原始值,就好像该值在本地缓存一样。我可以手动检查 JCR 节点并看到该值实际上已更改,但代码在查询时没有返回该值。

为了解决这个问题,我发现每次重新创建 JCR session 都会返回更新的值,但这似乎不是最佳解决方案。所以我的问题是:如何防止 JCR 节点和属性值的本地缓存(或发生的任何情况)?

这是执行查询的 Groovy 函数:

def getPropertyValueOnNode(propName, nodePath) {
session?.logout()
session = repo.login(new SimpleCredentials(username, password.toCharArray()))

def jcrContent = "${nodePath}/jcr:content"
if (session.nodeExists(jcrContent)) {
Node n = session.getNode(jcrContent)
if (n.hasProperty(propName)) {
return n.getProperty(propName).getString()
}
}
return null
}

最佳答案

我认为你看到的行为是应该的。

session 不应长时间保持打开状态(因此在测试用例中获取属性后关闭是正确的),如果是这样, session 刷新是正确的方法。特别是在针对橡木时,请参阅 http://jackrabbit.apache.org/oak/docs/differences.html

关于java - 查询远程服务器时如何防止 JCR 节点的本地缓存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22020758/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com