How to browse jackrabbit repository using spring-mvc
Как просмотреть репозиторий крольчатник с помощью веб-приложения spring-mvc?
Как сопоставить входящие URL-запросы в весенних веб-контроллерах с узлами в хранилище? Я бы хотел, чтобы пользователи могли открывать текстовый документ в OpenOffice или Word, открывая URL-адрес, подобный следующему, и сохранять его обратно через webdav.
HTTP: // локальный: 8080 / мой-приложение / мой-doc.doc
Заранее спасибо за любые идеи.
Имон
1 ответ
Репозиторий Jackrabbit и связанный с ним стандарт JSR для репозиториев контента Java предоставляют API персистентности довольно низкого уровня, который вы, вероятно, могли бы использовать для создания репозиториев для объектов Domain, сопоставляя данные со структурами репозитория, такими как узлы / свойства JCR. Вы будете использовать JCR API, расположенный в пакете javax.jcr. *, Для управления хранилищем (и для максимальной переносимости). В предложении вы можете использовать Jackrabbit для замены вашей базы данных.
Быстрый поиск в Google показал, что действительно существуют проекты, которые нацелены на предоставление удобных упаковок, похожих на те, которые вы, вероятно, знаете и любите для JDBC и Hibernate, только для JCR. Я нашел, например, проект Spring Modules: http://java.net/projects/springmodules/ который, к сожалению, последний раз обновлялся около двух лет назад, поэтому он все еще находится в JCR 1.0. Для примера использования взгляните на http://java.net/projects/springmodules/sources/svn/content/trunk/samples/jcr/src/org/springmodules/examples/jcr/JcrService.java?rev=2110 Тем не менее, Вы, вероятно, могли бы написать свой собственный JCR2Template без особых усилий и инкапсулировать повторяющиеся задачи, такие как соединение и обработка исключений, с помощью шаблона Template Method.
Что касается сопоставления запросов, вы можете запустить JCR на отдельном сервере, как и в случае с реляционной базой данных, и подключиться к нему через RMI. Вот пример: http://dev.day.com/content/docs/en/crx/current/developing/accessing_jcr_connectors.html Я считаю это "чистым" способом использования JCR в приложениях Spring MVC.
Что касается сохранения в WebDAV... Я знаю, что Jackrabbit действительно поддерживает монтирование репозиториев в качестве дисков WebDAV, но у меня на самом деле нет с этим никакого опыта, и я, честно говоря, не могу представить способ сказать Word загрузить файл после редактирования где-то... Но я вообще не эксперт по Word, извините....
Теперь... Apache Sling Framework, с другой стороны, предоставляет интересный подход к созданию приложений RESTful, которые хорошо интегрируются с моделью репозитория и некоторыми абстракциями более высокого уровня структуры Repository. Способ разрешения сервлетов в Sling, однако, полностью отличается от простого Spring MVC (см. http://dev.day.com/content/ddc/blog/2008/07/cheatsheet/_jcr_content/par/download/file), поэтому было бы немного работы, чтобы согласовать оба подхода.
Надеюсь, там есть информация, которую вы можете использовать.
Ура, Йоханнес