【问题标题】:Xquery extracting property values from .properties fileXquery 从 .properties 文件中提取属性值
【发布时间】:2020-02-25 16:39:32
【问题描述】:

我目前正在尝试从我的属性文件中提取属性值,但遇到了一些问题。我无法在 ML 查询控制台中对此进行测试,因为那里不存在属性文件。我目前正在尝试像这样获取文件的值

let $port := #{@properties["ml.properties-name"]}

我也看过

xdmp:document-get-properties(
   $uri as xs:string,
   $property as xs:QName

但是,我相信这仅限于 .xml 文件。有没有人有办法/解决方法来访问这些值?我似乎找不到我在 Marklogic 的网站上查看过一些文档的文档,但似乎找不到任何工作。我之前访问的方式是在 ruby​​ 中,通过猴子补丁允许我访问那些私有字段。问题是我调用的 ruby​​ 脚本只调用一次,而我的 .xqy 文件每分钟运行一次,将 args 发送到另一个功能。我需要从属性文件中访问这些参数,现在我只是将它们硬编码进去。有什么想法吗?

谢谢

【问题讨论】:

  • 我标记为已关闭,我认为它范围很广,我找到了一种我实施的方法并且它有效,但它不适合这个问题的范围。

标签: properties xquery marklogic roxy


【解决方案1】:

您无法访问这样的部署属性,但您可以将它们与部署一起传递。如果你使用最新的 Roxy 创建一个新的 REST 应用程序,你应该得到这个 config.xqy 的副本添加到 src/config/

https://github.com/marklogic-community/roxy/blob/master/deploy/sample/custom-config.xqy

该文件在部署到模块数据库时会被特殊处理。属性引用在那里被替换。在您的情况下,添加另一个变量,并按照@ml.xyz 模式给它一个字符串值:

declare variable $c:port := "@ml.property-name";

然后您可以导入配置库,并在您的代码中使用它。

这些所谓的 Deployer Substitutions 在 Roxy wiki 上有更详细的描述:

https://github.com/marklogic-community/roxy/wiki/Deployer-Substitutions

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-11
    • 2018-05-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多