代码之家  ›  专栏  ›  技术社区  ›  Beez

Xquery从.properties文件中提取属性值

  •  0
  • Beez  · 技术社区  · 4 年前

    我正在尝试从我的属性文件中提取属性值,但遇到了一些问题。我无法在ML query console中对此进行测试,因为那里不存在属性文件。我正在尝试获取文件的值,如下所示

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

    我也看过

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

    不过,我相信这仅限于.xml文件。是否有人有办法/工作来获取这些价值观?我似乎找不到一个我在Marklogic网站上看过的文档,但似乎什么都找不到。我之前访问的方式是在ruby中,通过monkey patching允许我访问那些私有字段,问题是我调用的ruby脚本只调用一次,而我的.xqy文件则每分钟运行一次,将参数发送到另一个函数。我需要从属性文件中访问这些参数,现在我只是硬编码了它们。有什么想法吗?

    谢谢

    0 回复  |  直到 4 年前
        1
  •  1
  •   Wai Ha Lee Jun ZHOU    4 年前

    您不能像那样访问部署属性,但可以将它们与部署一起传递。如果你用最新的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";
    

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

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