我想Map<String, String>通过 MarkLogic Java API将一个简单的 Java 传递给 XQuery 脚本。该脚本已经部署到/ext服务器上的目录中,并以如下方式启动:xquery version "1.0-ml";declare variable $dr as xs:string external;declare variable $en as xs:string external;declare variable $fi as map:map external;...我正在使用 MarkLogic 站点上描述的模式:https ://docs.marklogic.com/guide/java/resourceservices#id_70532 (“模块调用的基本步骤”)。我的 Java 代码如下所示:Map<String, String> map = new HashMap<>();map.put("key1", "value1");map.put("key2", "value2");ServerEvaluationCall invoker = client.newServerEval();invoker.addVariable("dr", "foo");invoker.addVariable("en", "bar");invoker.addVariableAs("fi", map);String response = invoker.evalAs(String.class);失败,但出现以下异常:java.lang.IllegalArgumentException: No factory for class java.util.HashMap at com.marklogic.client.impl.HandleFactoryRegistryImpl.makeHandle(HandleFactoryRegistryImpl.java:98) ~[marklogic-client-api-4.0.3.jar:?] at com.marklogic.client.impl.ServerEvaluationCallImpl.addVariableAs(ServerEvaluationCallImpl.java:123) ~[marklogic-client-api-4.0.3.jar:?]我想我需要在将地图发送到 ML 之前对其进行转换,或者可能使用其中一个处理程序类,但我无法解决它或找不到任何示例。以前有人这样做过吗?
添加回答
举报
0/150
提交
取消