Мы используем JackRabbit в производстве. К сожалению, у нас есть некоторые несоответствия в хранилищах, которые делают данные не нечитаемые: конфигурацияКак исправить несоответствие в Jackrabbit JCR (BundleFsPersistenceManager)
ERROR ResourceServiceImpl - RepositoryException to JCR javax.jcr.PathNotFoundException: 1661b5c
Пружинный боб выглядит следующим образом:
<bean id="repository" class="org.apache.jackrabbit.core.RepositoryImpl" destroy-method="shutdown">
<constructor-arg index="0" ref="config" />
</bean>
<bean id="config" class="org.apache.jackrabbit.core.config.RepositoryConfig" factory-method="create">
<constructor-arg index="0" ref="jcrXml"/>
<constructor-arg index="1" value="${instance.repository}" />
</bean>
<bean id="jcrXml" class="com.example.misc.InputStreamBeanFactory" factory-method="createStream">
<constructor-arg value="/jackrabbit-repository.xml" />
</bean>
<bean name="jcrSession" factory-bean="repository" factory-method="login" scope="session" destroy-method="logout" />
workspaces.xml
выглядит следующим образом:
<?xml version="1.0" encoding="UTF-8"?><Workspace name="default">
<FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
<param name="path" value="${wsp.home}"/>
</FileSystem>
<PersistenceManager class="org.apache.jackrabbit.core.persistence.bundle.BundleFsPersistenceManager"/>
</Workspace>
Из того, что я узнал (слишком поздно) here, сконфигурировано выше BundleFsPersistenceManager может стать непоследовательным. Здесь также написано, что это должно быть использовано в NOT. Ну, теперь он в производстве, и никто этого раньше не заметил, и мы хотели бы обменять это. Однако сначала мы должны перенести данные, и по этой причине нам нужно их исправить.
Мой вопрос: Есть ли способ исправить это или эти данные потеряны навсегда?
Мой второй вопрос: Что мы можем сделать, чтобы избежать этих проблем в будущем?.