【问题标题】:exist-db restxq trigger : Services deleted but still active存在-db restxq 触发器:服务已删除但仍处于活动状态
【发布时间】:2015-02-18 14:45:55
【问题描述】:

我对存在数据库中的 RESTXQ 实现有疑问。 我认为可能是 RestXQTrigger 工作不正常。

问题:我(通过仪表板)删除了一个集合,其中包括几个 .xqm 文件中的 RESTXQ 服务。但是,这些服务并未取消注册,并且即使在重新启动 eXist 后仍然可用。

有没有办法强制取消注册,我的意思是除了重新创建以前的集合/文件并一个一个删除每个 .xqm 文件(这样,触发器似乎工作)?

【问题讨论】:

    标签: rest exist-db xquery-3.0 restxq


    【解决方案1】:

    目前 eXist 中的 RESTXQ 只实现了 Document Trigger 事件,而不是 Collection Trigger 事件。这只是一个限制,需要在有时间实施时加以解决。

    在命名空间中随 eXist 提供了一个 XQuery 模块:http://exquery.org/ns/restxq/exist。此模块中的功能使您能够手动操作 RESTXQ 注册表。您可以在$EXIST_HOME/conf.xml 中启用它。如果您随后重新启动 eXist 并重新构建函数文档,您应该能够在函数浏览器应用程序中看到这些函数的文档。特别是您最有可能想要的功能:

    exrest:deregister-module(xs:anyURI("/db/my-module.xqm"))exrest:register-module(xs:anyURI("/db/my-module.xqm"))

    还有用于从模块中注册和取消注册单个函数的函数,称为 register-resource-functionderegister-resource-function,它们与上面类似,但采用第二个参数,即函数签名(作为 xs:string) qname#arity 的形式,例如"fn:substring#2"

    【讨论】:

    • 感谢您的精确!这个文档很受欢迎 :-) 这样,我在我们的生产平台中使用 RESTXQ 感觉更舒服。再次感谢。
    • 除了 eXist O'Reilly 的书外,RESTXQ 的文档非常缺乏,下一个最好的来源可能是adamretter.org.uk/presentations.xml#xmlprague12。但是,eXist 是一个开源项目,我欢迎一个为 RESTXQ 添加一些文档的拉取请求,请参阅:github.com/exist-db/documentation
    【解决方案2】:

    您可以停止数据库,并手动删除注册表文件$EXIST_HOME/webapp/WEBINF/data/restxq.registry

    【讨论】:

    • 我找这个很久了!!!谢谢 !!在文档中的任何地方都找不到这个,是吗?
    • 它已记录在案,但我不得不深入挖掘。 google.nl/… 表明它至少在 AdamR 和 ErikS 刚刚发布的“eXist”一书中被提及
    • 不,eXist-db 文档中似乎没有记录,抱歉。
    • 好的。我已经买了亚当的书:-D,但还没有。我还有一个问题,你认为 RestXQ 是完全可操作的还是仍处于 beta 模式?因为我们正在考虑在生产模式下使用它。
    • 我会说它值得生产。它已经过很好的测试,并且得到了积极的维护。
    猜你喜欢
    • 2020-05-03
    • 2019-02-15
    • 2013-07-07
    • 2011-11-28
    • 2013-09-24
    • 2015-06-20
    • 1970-01-01
    • 2018-10-09
    相关资源
    最近更新 更多