Как просмотреть хранилище зайчика, используя spring-mvc - PullRequest
2 голосов
/ 05 августа 2011

Как я могу просмотреть репозиторий крольчих с помощью веб-приложения spring-mvc?

Как сопоставить входящие запросы URL-адресов в веб-контроллерах Spring с узлами в репозитории?Я бы хотел, чтобы пользователи могли открывать текстовый документ в OpenOffice или Word, открывая URL-адрес, подобный следующему, и сохранять его обратно через webdav.

http://localhost:8080/my-app/my-doc.doc

Спасибо взаранее за любые идеи.

Éamonn

1 Ответ

2 голосов
/ 24 августа 2011

репозиторий Jackrabbit и связанный с ним стандарт JSR для репозиториев контента Java предоставляют API-интерфейс достаточно низкого уровня, который вы, вероятно, могли бы использовать для создания репозиториев для объектов домена, сопоставляя данные со структурами репозитория, такими как узлы / свойства 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),, поэтому было бы немного поработать, чтобы согласовать оба подхода.

Надеюсь, там есть какая-то информация, которую вы можете использовать.

Cheers, Johannes

...