有没有办法从我的java应用程序中调用xqy或sjs,就像我在oracle DB中调用存储过程一样?
我对xqy或sjs的另一个问题是如何调试它们?
提前谢谢。
发布于 2021-10-05 18:29:03
是的,有多种方法可以从Java调用MarkLogic中的JavaScript和XQuery模块。
这取决于MarkLogic应用服务器的类型、它是HTTP还是XDBC、是否安装了模块或者是否要发送要评估的代码,以及您是更喜欢使用HTTP还是自己调用MarkLogic。
您可以使用invoke a resource service extension的MarkLogic Java Client API,也可以使用ServerEvaluationCall评估您自己的JavaScript或XQuery
String javascript = "'hello world'";
String response = client.newServerEval()
.javascript(javascript)
.evalAs(String.class);
assertEquals("hello world", response);DataServices可用于公开功能并构建Java client stub来调用它们。
使用XCC,您可以使用ModuleInvoke()或ModuleSpawn调用已安装的模块,或者使用AdhocQuery调用eval JavaScript或XQuery
您还可以对REST /v1/eval或/v1/invoke端点进行自己的调用。
至于调试,您可以使用Visual Studio code to connect to a debug enabled appserver设置断点并逐步调试您的JavaScript和XQuery模块。
https://stackoverflow.com/questions/69453145
复制相似问题