exists-db restxq trigger:服务已删除但仍处于活动状态

时间:2014-12-19 16:16:16

标签: rest exist-db xquery-3.0 restxq

我在exists-db中遇到RESTXQ实现的问题。 我认为可能是RestXQTrigger无法正常工作。

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

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

2 个答案:

答案 0 :(得分:3)

目前,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"

答案 1 :(得分:1)

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