[英]exist-db restxq trigger : Services deleted but still active
我在exist-db中使用RESTXQ實現時遇到問題。 我認為可能是RestXQTrigger無法正常工作。
問題:我(通過儀表板)刪除了一個集合,該集合包括幾個.xqm
文件中的RESTXQ服務。 但是,即使重新啟動eXist,服務也不會取消注冊並仍然可用。
有什么方法可以強制取消注冊,我的意思是除了重新創建以前的集合/文件並.xqm
刪除每個.xqm
文件(這樣,觸發器似乎可以工作)?
目前,eXist中的RESTXQ僅實現文檔觸發事件,而不實現集合觸發事件。 這只是一個限制,在有時間實施時需要解決。
eXist在名稱空間中提供了一個XQuery模塊: http://exquery.org/ns/restxq/exist
: 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-function
和deregister-resource-function
它們與上面類似,但帶有第二個參數,它是一個函數簽名(如xs:string)以qname#arity的形式表示,例如"fn:substring#2"
您可以停止數據庫,然后手動刪除注冊表文件$EXIST_HOME/webapp/WEBINF/data/restxq.registry
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.