0

我们配置了 JackRabbit 存储库来存储文件和其他文件操作。在这里,我们尝试将大文件上传到JackRabbit Repositoryusing CreateDocumentFromFilePath API. 它抛出错误消息"com.rovicorp.jackrabbit.exception.JackrabbitException: JE_00002/nShort Message:::Exception from Jackrabbit Repository"

我们尝试上传文件少于30MB,它工作正常。但是,如果我们超出此范围,则会引发错误消息。

我们进一步调试了这个问题,我们看到以下错误消息:

"Caused by: org.apache.jackrabbit.rmi.client.RemoteRepositoryException:
java.rmi.UnmarshalException: Error unmarshaling return; nested exception is:
java.lang.ClassNotFoundException:
org.apache.jackrabbit.core.data.DataStoreException (no security manager: RMI
class loader disabled)"

我们在互联网上阅读并需要配置Repository.xml文件以获取上传文件的最大大小。我们无法弄清楚如何在Repository.xml. 附上屏幕截图的错误消息。

在此处输入图像描述

我们想使用CreateDocumentFromFilePath API.

你能帮助我们解决这个问题吗?

提前致谢

4

1 回答 1

0

让我们查看 Jackrabbit 关于Database Data Store的文档,并查看:

添加二进制对象时,Jackrabbit 会检查它的大小。当它大于minRecordLength(默认 100 字节)时,它被添加到数据存储中,否则它被保存在内存中。这是很早就完成的(可能在调用时Property.setValue(stream))。只有唯一的数据标识符存储在持久性管理器中(存储数据的内存对象除外)。更新值时,旧值会保留在那里(可能变成垃圾)并添加新值。没有更新操作。

当前的实现在某些情况下仍然存储临时文件,例如在RMI client. 这些案例将被更改为在有意义的地方直接使用数据存储。

在查看了您的异常:后DataStoreException (no security manager: RMI class loader disabled),我们得出的想法是,您的客户端只是没有 RMI 服务器的权限。这个问题已经在这里得到了回答:Java: no security manager: RMI class loader disabled

于 2018-12-27T04:46:09.463 回答