如何使用Marklogic API

时间:2016-09-08 10:46:33

标签: marklogic

说,我在多个目录中有一个模块abc.xqy:

  • /Adir/dir1/dir2/abc.xqy
  • /Bdir/dir1/dir2/abc.xqy
  • /Cdir/dir1/dir2/abc.xqy
  • /Ddir/dir1/dir2/abc.xqy

这是从java触发/调用我想在执行时找到该文件的绝对位置(当执行xqy时我希望获得该文件中的路径),基于此我可以编写逻辑。如何实现? 当我从java执行newmoduleinvoke时,xdmp:get-invoked-path无效。它仅在我执行xdmp:invoke时才有效。

2 个答案:

答案 0 :(得分:1)

很难检测到您所处的物理文件(特别是如果它是库模块)而不抛出和捕获异常,并分析堆栈跟踪。但是在xdmp:get-invoked-path旁边,您还有xdmp:get-request-pathxdmp:modules-root也可能相关..

HTH!

答案 1 :(得分:0)

试试xdmp:get-request-url。来自文档:

  

返回host_name:port_number之后的URL部分。输出不包括随URL提供的任何片段标识符(即,它不包括#符号或#符号后面的任何内容)。请注意,使用URL重写器时,此函数将返回重写的URL。

这应该标识正在使用的主要模块。我没有看到识别当前库模块的方法。