首页 > 解决方案 > 如何从 Java api Marklogic 10 [marklogic] 调用 sjs 或 xqy 文件

问题描述

有没有办法从我的 java 应用程序中调用 xqy 或 sjs,就像我可以在 oracle DB 中调用存储过程一样?

我对 xqy 或 sjs 的另一个问题是如何调试它们?

提前致谢。

标签: marklogicmarklogic-10

解决方案


是的,有多种方法可以从 Java 调用 MarkLogic 中的 JavaScript 和 XQuery 模块。

取决于 MarkLogic 应用程序服务器的类型,它是 HTTP 还是 XDBC,是否安装了模块,或者您是否正在发送要评估的代码,以及您是更喜欢使用 MarkLogic Java API 还是进行自己的 HTTP 调用。

您可以使用MarkLogic Java 客户端 API调用资源服务扩展或使用ServerEvaluationCall评估您自己的 JavaScript 或 XQuery :

String javascript = "'hello world'";
String response = client.newServerEval()
    .javascript(javascript)
    .evalAs(String.class);
assertEquals("hello world", response);

DataServices可用于公开功能并构建 Java 客户端存根来调用它们。

使用 XCC,您可以使用ModuleInvoke()ModuleSpawn调用已安装的模块,或使用AdhocQuery评估 JavaScript 或 XQuery

您还可以自己调用 REST /v1/eval/v1/invoke端点。

至于调试,您可以使用Visual Studio 代码连接到启用调试的应用服务器设置断点并逐步执行 JavaScript 和 XQuery 模块。


推荐阅读