0

我使用 eXist 作为 XML 和二进制数据的 DBMS。我通过使用 XMLDB API 的 Java 程序与它进行交互。为了存储我的数据,我以这种方式在 XQuery 中使用xmldb:store函数:

xmldb:store('Collection Name', 'Id','Document Contents') //for XML documents

xmldb:store('Collection Name', 'Id','Base64 Encoded Contents', 'application/octet-stream') //for binary data

我正在尝试编写一个程序来读取文件夹中的文件并将它们保存在数据库中,为每个文件调用正确的存储函数。二进制数据由图像、pdf文件、一些swf动画等组成。

当我为大多数资源启动程序时,上传完成没有错误,但对于其中一些资源,我得到了这个异常:

XMLDBException:无法调用类 org.exist.xmlrpc.RpcConnection 中的方法检索:结果集未知或超时

每次我启动程序时,这个错误都会显示在不同的文件上。在包含大约 250 个文件的目录上,我得到 7 到 12 个错误。我认为这可能是超时过期,但是 eXist 服务器位于虚拟机上,因此通信非常快,而且目录中包含的文件属于不同类型,即使在小型 xml 文件上我也会收到错误,而例如,它存储更大的 swf 动画。

对服务器的所有请求都是顺序的,除了我之外没有其他用户使用它。

我真的希望有人能给我一些建议,以了解原因可能是什么。提前致谢 :)

4

1 回答 1

0

好的,我找到了另一种方法来做同样的事情。我解决了这个问题,使用 XML:DB API 直接存储我需要的文件,而不是执行 XQuery。

所以我使用了 Collection.createResource 和 Collection.storeResource 并且一切正常:)

于 2012-06-07T12:49:34.470 回答