Загрузка больших файлов в репозиторий JackRabbit с помощью API - PullRequest
0 голосов
/ 27 декабря 2018

Мы настроили хранилище 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.Прикрепленное сообщение об ошибке снимка экрана.

enter image description here

Мы хотим загрузить большие файлы в «Репозиторий JackRabbit», используя CreateDocumentFromFilePath API.

Можете ли вы помочь нам решить эту проблему?

Заранее спасибо

1 Ответ

0 голосов
/ 27 декабря 2018

Давайте проверим документацию Jackrabbit о Хранилище данных базы данных и посмотрим:

При добавлении двоичного объекта Jackrabbit проверяет его размер.Когда он больше minRecordLength (по умолчанию 100 байт), он добавляется в хранилище данных, в противном случае он сохраняется в памяти.Это делается очень рано (возможно при звонке Property.setValue(stream)).В диспетчере постоянства хранится только уникальный идентификатор данных (за исключением объектов в памяти, где хранятся данные).При обновлении значения старое значение сохраняется там (потенциально становится мусором) и добавляется новое значение.Операция обновления не выполняется.

Текущая реализация по-прежнему сохраняет временные файлы в некоторых ситуациях, например в RMI client.Эти случаи будут изменены, чтобы использовать хранилище данных непосредственно там, где это имеет смысл.

Посмотрев на ваше исключение: DataStoreException (no security manager: RMI class loader disabled), мы пришли к мысли, что у вашего клиента просто нет прав на RMI-сервер.И на эти вопросы уже дан ответ здесь: Java: нет диспетчера безопасности: загрузчик класса RMI отключен

...