2012-01-06 83 views
1

我想在使用Apache Jackrabbit存储库的Spring webapp上运行交易。 JackRabbit然后使用关系数据库(MySQL/PgSQL)来获取文本数据。二进制数据被存储到FileSystem。Apache Jackrabbit和Spring交易

到目前为止,我有兔崽子豆的这个功能配置:在repository.xml文件

<bean id="sessionFactory" class="com.example.MyJcrSessionFactory"> 
    <constructor-arg index="0" ref="repository"/> 
    <constructor-arg index="1" ref="jcrCredentials"/> 
</bean> 

<bean id="repository" class="org.apache.jackrabbit.core.RepositoryImpl"> 
    <constructor-arg index="0" ref="config" /> 
</bean> 

<bean id="config" class="org.apache.jackrabbit.core.config.RepositoryConfig" factory-method="create"> 
    <constructor-arg index="0" type="java.io.InputStream" value="classpath:jackrabbit/repository.xml"/> 
    <constructor-arg index="1" type="java.lang.String" value="/tmp/repository" /> 
</bean> 

<bean id="jcrCredentials" class="javax.jcr.SimpleCredentials"> 
    <constructor-arg index="0" type="java.lang.String" value="..." /> 
    <constructor-arg index="1" type="char[]" value="..." /> 
</bean> 

而且兔崽子配置的其余部分。

我需要做什么才能成功在JackRabbit存储库上运行事务?我应该使用哪种技术?

我在Tomcat/Glassfish上运行Spring 3.1,Jackrabbit 2.3.3。而且我不想使用过时的弹簧模块。

回答

3

我们使用一个类似的设置(Jackrabbit,Spring,Tomcat)和Jencks作为JCA提供者。

下面是一个例子配置:

<bean id="txManagerJencks" class="org.jencks.factory.TransactionManagerFactoryBean" /> 

<bean id="pooledConnectionManagerJcr" class="org.jencks.factory.ConnectionManagerFactoryBean"> 
    <property name="transactionManager"> 
     <ref local="txManagerJencks" /> 
    </property> 
    <property name="transaction" value="xa" /> 
    <property name="poolMinSize" value="1"/> 
    <property name="poolMaxSize" value="5"/> 
    <property name="connectionMaxIdleMinutes" value="5" />  
</bean> 

<bean id="repositoryManagedConnectionFactory" class="org.apache.jackrabbit.jca.JCAManagedConnectionFactory" destroy-method="finalize"> 
    <property name="homeDir" value="${jackrabbit.homeDir}/jackrabbit" /> 
    <property name="configFile" value="classpath:repository.xml" /> 
</bean> 

<bean id="repository" 
    class="org.springframework.jca.support.LocalConnectionFactoryBean" > 
    <property name="managedConnectionFactory"> 
     <ref local="repositoryManagedConnectionFactory" /> 
    </property> 
    <property name="connectionManager"> 
     <ref local="pooledConnectionManagerJcr" /> 
    </property> 
</bean> 
+1

上是如何工作的,当你有一个远程兔崽子回购任何想法? – rwijngaa 2015-12-16 09:56:42