|
|
|
вопросы по JCR, Apache Jackrabbit
|
|||
|---|---|---|---|
|
#18+
Всем привет, начал изучения JCR и его опенсорс реализацию Apache Jackrabbit. Apache Jackrabbit заупустил как standalone сервер. Также увидел фрэймворк OCM , очень заинтересовала возможность работы по принципу ORM. Далее создал классический иерархии, папка(nt:folder), файл(nt:file), ресурс(nt:resource) . Подкючилcя по РМИ к хранилищу, создал OCM менеджер и попробовал добавить папку как получил забавный эксепшен: NoSuchNodeTypeException: { http://jackrabbit.apache.org/ocm}discriminator . Как я понял этот эксепшен говорит о том, что хранилищу не хватает стандартного типа discriminator . Причем как я понял добавить тип по РМИ нельзя, а только настройкой сервера, отсюда и появились следующие вопросы: 1.Зачем вообще нужен этот тип и почему его нет по дефолту? 2.Как мне добавить его к хранилищу и будущие уже мои типы с учетом того, что хранилище это standalone приложение которое будет крутится на другой машине. 3.Как я понял безопасность к данному хранилищу прикручивается с помощью ACL , можете объяснить в чем главная суть или дать ссылки на работающие примеры. Так же возможно есть лучше способ давать доступ к разным узлам в дереве конкретным пользователям? Также уточню, что хочется использовать OCM фрэймворк, а не чистый апи по созданию узлов, поэтому как ACL или что-то там подружить с OCM ? 4.Есть ли русскоязычная документация или хорошие примеры по JCR и Jackrabbit в частности, а то что-то погуглив информации мало. 5.Стоит ли вообще использовать JCR и Jackrabbit в качестве хранилища разнообразных файлов в проекте. Ибо за один день поднять чтоб сразу заработало у меня не получилось. Может есть вещи с такой же функциональность, но проще или современней. Из функциональности нужно возможность хранить иерархический структуры, а также html чтоб поддерживалась относительная с сылочность, возможность их просмотр через браузер по http. Возможность хранить большие много гигабайтные файлы. Возможность раздать права. Версионность, кластеизация, стабильность и т.д. Заранее благодарен ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2012, 02:28:08 |
|
||
|
вопросы по JCR, Apache Jackrabbit
|
|||
|---|---|---|---|
|
#18+
6. Также интересует транзактивность, причем как я понимаю так как это отдельное приложения то уже надо говорить о распределенных XA транзакциях, может у кого примеры есть или укажет что почитать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2012, 02:30:33 |
|
||
|
вопросы по JCR, Apache Jackrabbit
|
|||
|---|---|---|---|
|
#18+
slippery, а можно пример кода, который кидает exception? Я года 1.5 назад разбирался с JCR и даже пробовал использовать, штука очень хорошая и идея достаточно светлая. Но в нашем проекте мы не стали использовать, ушли на СУБД так как много специфичных вещей понадобилось, а вообще JCR применяется в кучи проектах с документооборотом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2012, 08:09:56 |
|
||
|
вопросы по JCR, Apache Jackrabbit
|
|||
|---|---|---|---|
|
#18+
GregTk, @Node(jcrType = "nt:folder") public class FolderNode extends HierarchyNode implements Serializable { @Collection(autoUpdate = false, elementClassName = HierarchyNode.class, collectionConverter = NTCollectionConverterImpl.class) private java.util.Collection children; .......................................................................................................... @Node(jcrType = "nt:file", extend = HierarchyNode.class, jcrMixinTypes = "mix:versionable,mix:lockable") public class FileNode extends HierarchyNode implements Serializable { @Bean(jcrName = "jcr:content") private Resource resource; @Field(id = true) private String name .......................................................................................................... @Node(jcrType = "nt:hierarchyNode") public class HierarchyNode implements Serializable .......................................................................................................... @Node(jcrType = "nt:resource") public class Resource implements Serializable ну и простой способ вставки: Mapper mapper = new AnnotationMapperImpl(classes); ObjectContentManager ocm = new ObjectContentManagerImpl(session, mapper); Resource resource = new Resource(); resource.setData(new FileInputStream(file)); resource.setMimeType("image/jpeg"); resource.setLastModified(Calendar.getInstance()); FileNode fileNode = new FileNode(); fileNode.setName("test"); fileNode.setResource(resource); fileNode.setPath("/rep/test.jpg"); FolderNode folderNode = new FolderNode(); List<FileNode> files = new ArrayList<>(); files.add(fileNode); folderNode.setChildren(files); folderNode.setPath("/rep"); ocm.insert(folderNode); ocm.save(); на что получаю ошибку: NoSuchNodeTypeException: { http://jackrabbit.apache.org/ocm}discriminator ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2012, 16:08:12 |
|
||
|
|

start [/forum/topic.php?fid=59&fpage=303&tid=2132338]: |
0ms |
get settings: |
14ms |
get forum list: |
24ms |
check forum access: |
6ms |
check topic access: |
6ms |
track hit: |
45ms |
get topic data: |
22ms |
get forum data: |
5ms |
get page messages: |
89ms |
get tp. blocked users: |
3ms |
| others: | 347ms |
| total: | 561ms |

| 0 / 0 |
