我们将JackRabbit存储库配置为用于存储文件和其他文件操作。在这里,我们尝试使用JackRabbit Repository
将大文件上传到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
将大文件上传到'JackRabbit Repository'。
您能帮助我们解决此问题吗?
预先感谢
答案 0 :(得分:0)
让我们查看关于Database Data Store的Jackrabbit文档,并查看:
添加二进制对象时,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