标签: jackrabbit

如何在Apache Jackrabbit中配置自定义节点定义?

有没有办法可以在实例化新存储库时为Apache Jackrabbit配置自定义节点类型

我正在使用Apache Maven自动化我的构建,并且使用JUnit和集成测试运行一些单元测试以与Jetty一起运行,并且希望能够轻松地设置和拆除测试存储库.

java jackrabbit jcr jsr170

4
推荐指数
2
解决办法
3443
查看次数

将各种类型的文档(ods,ms office,pdf)保存到Jackrabbit存储库中

我不确定选择哪种方法来存储这些类型的文档,因为关键要求是尽可能多地收集元数据,pdf,ods和MS office文档有各种类型的元数据 ......

因此,如果节点树具有"组/用户/类别/文档"或"类别/组/用户/文档"结构(我不确定哪个更好),则每个文档都必须具有属性"键入"如果它是pdf/doc/odt/ppt等,我每次都要测试它,知道它有哪些元数据类型,对吧?在我看来非常无效..

java metadata jackrabbit jcr

4
推荐指数
1
解决办法
2178
查看次数

Sling vs CMIS作为Apache jackrabbit的REST接口

如果我得到它,Apache Sling将为Jackrabbit JCR存储库充当REST CRUD接口.

由于已经存在RESTful协议(其AtomPub实现中的CMIS)以与JCR存储库一起工作,除了视图/模板层之外,使用Apache Sling与CMIS(即通过Apache Chemistry)有什么优势吗?

使用CMIS不支持的JCR(Sling)可以做些什么吗?

jackrabbit jcr cmis apache-chemistry sling

4
推荐指数
1
解决办法
1893
查看次数

JDBC驱动程序注册死锁?

在一个线程中,正在创建一个JackRabbit:

"docs-on-startup" #32 prio=5 os_prio=0 tid=0x00007f730d73e800 nid=0x601d in Object.wait() [0x00007f725bffc000]
   java.lang.Thread.State: RUNNABLE
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    at java.lang.Class.newInstance(Class.java:442)
    at java.util.ServiceLoader$LazyIterator.nextService(ServiceLoader.java:380)
    at java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:404)
    at java.util.ServiceLoader$1.next(ServiceLoader.java:480)
    at java.sql.DriverManager$2.run(DriverManager.java:603)
    at java.sql.DriverManager$2.run(DriverManager.java:583)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.sql.DriverManager.loadInitialDrivers(DriverManager.java:583)
    at java.sql.DriverManager.<clinit>(DriverManager.java:101)
    at org.apache.derby.jdbc.EmbeddedDriver.boot(Unknown Source)
    at org.apache.derby.jdbc.EmbeddedDriver.<clinit>(Unknown Source)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:264)
    at org.apache.jackrabbit.core.util.db.ConnectionFactory.getDriverClass(ConnectionFactory.java:261)
    at org.apache.jackrabbit.core.util.db.ConnectionFactory.createDataSource(ConnectionFactory.java:234)
    at org.apache.jackrabbit.core.util.db.ConnectionFactory.getDataSource(ConnectionFactory.java:170)
    - locked <0x000000066c71ea70> (a java.lang.Object)
    at org.apache.jackrabbit.core.persistence.pool.BundleDbPersistenceManager.getDataSource(BundleDbPersistenceManager.java:569)
    at org.apache.jackrabbit.core.persistence.pool.BundleDbPersistenceManager.init(BundleDbPersistenceManager.java:537)
    at org.apache.jackrabbit.core.persistence.pool.DerbyPersistenceManager.init(DerbyPersistenceManager.java:250)
    at org.apache.jackrabbit.core.RepositoryImpl.createPersistenceManager(RepositoryImpl.java:1375)
    at org.apache.jackrabbit.core.RepositoryImpl.createVersionManager(RepositoryImpl.java:512)
    at org.apache.jackrabbit.core.RepositoryImpl.<init>(RepositoryImpl.java:313)
    at org.apache.jackrabbit.core.RepositoryImpl.create(RepositoryImpl.java:615)
Run Code Online (Sandbox Code Playgroud)

在另一个线程中,使用Class.forName("org.postgresql.Driver")初始化Postgres的驱动程序:

"schema-task-1" #37 prio=5 …
Run Code Online (Sandbox Code Playgroud)

java postgresql jdbc jackrabbit

4
推荐指数
1
解决办法
366
查看次数

人类JCR工作空间的解释和使用案例

可以请任何人解释有关JCR工作空间的JCR 2.0规范吗?

我知道会话总是绑定到一个持久工作空间,尽管单个持久工作空间可能绑定到多个会话.

这可能与版本控制和交易有关,但我不知道为什么.

一些观察:

  • 只能在同一工作空间的节点之间进行引用
  • 执行查询将始终定位到单个工作区

工作区似乎是关于表示相同内容(相同UUID)的节点,在:

  • 不同版本的"东西",项目可能吗?
  • 工作流程的不同阶段

并且不应该用于ACL.

同样在JackRabbit中,每个工作区都有其持久性管理器.而ModeShape有一个源连接器 - 独立于工作空间.

workspace jackrabbit jcr modeshape

3
推荐指数
1
解决办法
3214
查看次数

Jackrabbit配置类org.apache.jackrabbit.core.persistence.pool.OraclePersistenceManager不包含名为tableSpace的属性

我尝试使用带有Oracle DB的Jackrabbit作为持久层.因此我在Tomcat 6服务器(本地)上安装了Jackrabbit.数据库在虚拟机中运行.从Jackrabbits项目页面安装war文件后,我使用了默认的安装机制.之后,我更改了配置(repository.xml)并删除了所有文件夹(工作区和存储库).所以我的Jackrabbit文件夹只包含repositry.xml和bootstrap.properties.

这是我的reporitory.xml

<Repository>
    <FileSystem class="org.apache.jackrabbit.core.fs.db.OracleFileSystem">
        <param name="driver" value="oracle.jdbc.driver.OracleDriver"/>
        <param name="url" value="jdbc:oracle:thin:@localhost:1521:XE"/>
        <param name="user" value="JCR" />
        <param name="password" value="test"/>
        <param name="schema" value="oracle"/>
    </FileSystem>
    <DataStore class="org.apache.jackrabbit.core.data.db.DbDataStore">
        <param name="driver" value="oracle.jdbc.driver.OracleDriver"/>
        <param name="url" value="jdbc:oracle:thin:@localhost:1521:XE"/>
        <param name="user" value="JCR" />
        <param name="password" value="test"/>
    </DataStore>
    <Security appName="Jackrabbit">
        <SecurityManager class="org.apache.jackrabbit.core.DefaultSecurityManager" workspaceName="security">
        </SecurityManager>
        <AccessManager class="org.apache.jackrabbit.core.security.DefaultAccessManager">
        </AccessManager>

        <LoginModule class="org.apache.jackrabbit.core.security.authentication.DefaultLoginModule">
           <param name="anonymousId" value="anonymous"/>
           <param name="adminId" value="admin"/>
        </LoginModule>
    </Security>

    <Workspaces rootPath="${rep.home}/workspaces" defaultWorkspace="default"/>
    <Workspace name="${wsp.name}">
        <FileSystem class="org.apache.jackrabbit.core.fs.db.OracleFileSystem">
            <param name="driver" value="oracle.jdbc.driver.OracleDriver"/>
            <param name="url" value="jdbc:oracle:thin:@localhost:1521:XE"/>
            <param name="user" value="JCR" />
            <param name="password" value="test"/>
            <param …
Run Code Online (Sandbox Code Playgroud)

oracle jackrabbit jcr oracle11g

3
推荐指数
1
解决办法
4099
查看次数

apache camel jcr jackrabbit

我是骆驼世界的新手,我在与jcr组件建立连接方面遇到了问题.看看我的测试代码:

import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.component.jcr.JcrConstants;
import org.apache.camel.test.junit4.CamelTestSupport;
import org.junit.Test;


public class ObjectToJCRRouteTest extends CamelTestSupport {

    @Override
    protected RouteBuilder createRouteBuilder() throws Exception {
        return new RouteBuilder() {
            @Override
            public void configure() throws Exception {
                from("direct:a")
                        .setProperty(JcrConstants.JCR_NODE_NAME,
                                constant("node"))
                        .setProperty("my.contents.property", body())
                        .to("jcr://admin:admin@localhost:8080/home/test");
            }
        };
    }

    @Test
    public void putJCRNode() throws Exception {
        template.sendBodyAndHeader("direct:a", null, null, null);
        Thread.sleep(1000);
    }
}
Run Code Online (Sandbox Code Playgroud)

我试过了jcr:// admin:admin @ localhost/home/test","jcr:// admin:admin @ localhost:8080/home/test","jcr:// admin:admin @ localhost:8080/repository /家/测试"

我使用rmi使用存储库资源管理器(http://www.subshel​​l.com/en/toromiro/index.html)测试了jackrabbit 并且连接成功了

在任何帮助下提前感谢!

我的jackrabit服务器是:

jmartinez @ jmartinez:〜/ software/jackrabbit $ java -jar …

apache-camel jackrabbit jcr

3
推荐指数
1
解决办法
1157
查看次数

将CQ5组件设置为可编辑或不可编辑

如果我想在页面A中设置可编辑的cq5组件,但在页面B中不可编辑,是否可行.

例如:在页面A,我有C组件,我们允许作者打开对话框并编辑组件.但是我们不允许作者打开对话框来编辑页面B上的组件C.我尝试研究cq:EditConfig 链接,但这还不足以解决我的问题.

java jackrabbit jcr sling aem

3
推荐指数
1
解决办法
2910
查看次数

DMS的JCR与JPA:性能,优点,缺点

在对JCR或RDBMS进行了一些研究并阅读了其他文章之后,我仍然不确定是否将JCR over JPA用于文档管理系统,该系统必须处理不同的文档类型,非常大的文件以及许多文档的并发访问用户。

我考虑JCR的主要理由是因为文档对我来说看起来像内容,并且该规范已经解决了它所带来的一些问题-大多数我对存储和版本控制感兴趣。另外,我想将文档内容封装在JCR实现中,并将JPA用于其他所有特定于应用程序的内容。

也许有人可以帮我解决剩余的问题:

  • JCR的读取/查询性能与JPA有什么关系(我知道它在实现上应该有很大的不同,但是可能会有一些经验法则)?
  • 是否有人在具有某些特定JCR实现的类似用例中具有实际经验?如果是这样,您是否将其与关系数据库(JPA)混合使用?
  • 考虑到文件存储和版本控制的好处,值得引入JCR的开销吗?(我很可能会使用自己的自定义使用访问控制(JPA),并且不需要额外的灵活性即可在运行时引入新的节点属性)
  • 是否有人对数据完整性和备份解决方案有任何经验?

更新:尽管已经详细回答了这个问题,但从更实际的角度来看,可能有人会对它的使用有更严格的了解。我个人越来越关注以下与技术无关的问题:

  1. 文档:Jackrabbit的文档很差,OCM的指南第一段中包含一个无效链接,一些示例搜索查询由于未知原因引发了异常,非常基础的教程中有一个TODO,并且它的独立服务器在JDK8中无法正常工作,完全没有记录。
  2. 成熟度:Jackrabbit Oak似乎仍在开发中,其他解决方案似乎要么被放弃,要么正在边缘化。
  3. 社区:在对面JPA,做JCR导致更少的方式研究命中。当刚接触该技术的项目团队陷入(重大)问题中时,这可能是一个真正的问题。

java jpa jackrabbit jcr dms

3
推荐指数
1
解决办法
1456
查看次数

javax.jcr.InvalidItemStateException:无法保存项目

我在单盒 cq5 作者环境中遇到以下异常。

javax.jcr.InvalidItemStateException: Item cannot be saved 
because node property has been modified externally
Run Code Online (Sandbox Code Playgroud)

更多异常详情:

Caused by: javax.jcr.InvalidItemStateException: Unable to update a stale item: item.save()
    at org.apache.jackrabbit.core.ItemSaveOperation.perform(ItemSaveOperation.java:262)
    at org.apache.jackrabbit.core.session.SessionState.perform(SessionState.java:216)
    at org.apache.jackrabbit.core.ItemImpl.perform(ItemImpl.java:91)
    at org.apache.jackrabbit.core.ItemImpl.save(ItemImpl.java:329)
    at org.apache.jackrabbit.core.session.SessionSaveOperation.perform(SessionSaveOperation.java:65)
    at org.apache.jackrabbit.core.session.SessionState.perform(SessionState.java:216)
    at org.apache.jackrabbit.core.SessionImpl.perform(SessionImpl.java:361)
    at org.apache.jackrabbit.core.SessionImpl.save(SessionImpl.java:812)
    at com.day.crx.core.CRXSessionImpl.save(CRXSessionImpl.java:142)
    at org.apache.sling.jcr.resource.internal.helper.jcr.JcrResourceProvider.commit(JcrResourceProvider.java:511)
    ... 215 more
Caused by: org.apache.jackrabbit.core.state.StaleItemStateException: 3bec1cb7-9276-4bed-a24e-0f41bb3cf5b7/{}ssn has been modified externally
    at org.apache.jackrabbit.core.state.SharedItemStateManager$Update.begin(SharedItemStateManager.java:679)
    at org.apache.jackrabbit.core.state.SharedItemStateManager.beginUpdate(SharedItemStateManager.java:1507)
    at org.apache.jackrabbit.core.state.SharedItemStateManager.update(SharedItemStateManager.java:1537)
    at org.apache.jackrabbit.core.state.LocalItemStateManager.update(LocalItemStateManager.java:400)
    at org.apache.jackrabbit.core.state.XAItemStateManager.update(XAItemStateManager.java:354)
    at org.apache.jackrabbit.core.state.LocalItemStateManager.update(LocalItemStateManager.java:375)
    at org.apache.jackrabbit.core.state.SessionItemStateManager.update(SessionItemStateManager.java:275)
    at org.apache.jackrabbit.core.ItemSaveOperation.perform(ItemSaveOperation.java:258)
Run Code Online (Sandbox Code Playgroud)

这是代码示例:

adminResourceResolver = resourceResolverFactory
                .getAdministrativeResourceResolver(null);
Resource fundPageResource …
Run Code Online (Sandbox Code Playgroud)

jackrabbit jcr sling aem

3
推荐指数
1
解决办法
2268
查看次数