MarkLogicJavaAPI异常抛出方法 在Java API中,尽管事务错误,但不会引发异常:
文档MarkLogicJavaAPI异常抛出方法 在Java API中,尽管事务错误,但不会引发异常:,java,exception,marklogic,Java,Exception,Marklogic,文档落基山脉不存在,但是API愉快地声明已删除: 在查询控制台中,eval检测并抛出错误: 作为两个缺点中较小的一个,DMSDK意味着没有删除文档,但仍然不会引发异常: 结果: 我尝试了检查和未检查的异常,但没有结果 哪个MarkLogic类和方法强制抛出异常并降低风险 通过Java API的查询事务: 失败: 成功: 运行xdmp:documentdelete和使用javaapi删除文档之间有一个重要区别。Java API是MarkLogic REST-API的包装器,它遵循RESTfu
落基山脉
不存在,但是API愉快地声明已删除
:
在查询控制台中,eval
检测并抛出错误:
运行
xdmp:documentdelete
和使用javaapi删除文档之间有一个重要区别。Java API是MarkLogic REST-API的包装器,它遵循RESTful API的规则。RESTful API的一个重要规则是调用应该是幂等的。简而言之,这意味着您应该能够运行两次呼叫,并且两次都得到相同的回复。这就是为什么在文档存在或不存在时,对插入、更新和删除的调用不会抛出错误
例如,另见:
如果你想让你的应用更加严格,我建议你使用数据服务,或者自定义REST扩展
嗯 很好,吉尔特……我很难说服自己,我不仅仅是看到了海市蜃楼。请参见上面的Java查询事务:
异常
被Servlet
捕获……至少可以说,它告诉我每天修复或修复稳健比严格更重要。严格来说,最终用户不应该使用qconsole、restapi或要求DBA执行txn。当一个人通过Angular UI引擎执行txn时,消费者对幕后工作一无所知。我突然意识到,随之而来的幂等性是一个需要质疑的断言。当然,您认为更新事务异常不能在任何Java异常处理中生存?下面的
**SQLException**
确实存在,可以说是我正在寻找的可比性:——描述
:——类
:——方法
:他们本可以做出不同的决定,但这是他们做出的选择,以坚持RESTful API的原则,这导致Java和节点客户端库以其工作方式工作。(耸耸肩)
try {
…………………………………
logger.info("Delete Document " + uri);
docMgr.delete("rocky-mountains");
System.out.println("Deleted");
} catch (Exception e) {
logger.error("Exception : " + e.toString() );
}
Jul 05, 2020 9:35:04 PM com.fc.allegro.DeleteDocument deleteDocument
INFO: Delete Document rocky-mountains
Jul 05, 2020 9:35:04 PM com.marklogic.client.impl.DocumentManagerImpl delete
INFO: Deleting rocky-mountains
Deleted
[1.0-ml] XDMP-DOCNOTFOUND: xdmp:document-delete("rocky-mountains") -- Document not found
QueryBatcher batcher = dmManager.newQueryBatcher(new StructuredQueryBuilder().document("rocky-mountains"));
batcher.onUrisReady(new DeleteListener())
.onQueryFailure( exception -> exception.printStackTrace() );
Jul 05, 2020 9:52:07 PM com.marklogic.client.datamovement.impl.QueryBatcherImpl withForestConfig
INFO: (withForestConfig) Using forests on [localhost] hosts for "allegro"
Batch Deleted
INFO: Job complete, jobBatchNumber=1, jobResultsSoFar=0