2012-01-06 85 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