2012-01-06 3 views
1

Apache Jackrabbit 저장소를 사용하는 Spring Webapp에서 트랜잭션을 실행하려고합니다. JackRabbit은 텍스트 데이터 용으로 관계형 데이터베이스 (MySQL/PgSQL)를 사용합니다. 이진 데이터는 FileSystem에 저장됩니다. repository.xml 파일 Apache Jackrabbit 및 Spring에서의 트랜잭션

<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

우리는 JCA 제공자로서 Jencks과 비슷한 설정 (Jackrabbit, Spring, Tomcat)을 사용하고 있습니다.

다음은 예제 설정이다 :

<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

이 작품 원격 잭 래빗의 REPO가 않을 때 방법에 대한 생각? – rwijngaa

관련 문제