使用远程JNDI数据源的Spring + Hibernate事务管理

时间:2015-10-09 07:26:29

标签: java hibernate weblogic jta spring-transactions

我有一个Spring应用程序,它使用hibernate,Spring事务管理和位于Weblogic服务器上的JNDI数据源。

应用程序在weblogic 上部署时工作正常,但是当在本地作为独立的Java应用程序(没有容器)运行时,它会引发跟随错误 -

  

org.hibernate.service.jndi.JndiException:解析JNDI名称时出错   [使用javax.transaction.TransactionManager]   javax.naming.NoInitialContextException:需要在中指定类名   环境或系统属性

以下是我在设置中使用的事务管理器,数据源和hibernate配置:

<bean id="transactionManager" class="org.springframework.transaction.jta.WebLogicJtaTransactionManager"></bean>

<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
    <property name="jndiName" value="jdbc/mydatasource"/>
    <property name="jndiEnvironment" ref="weblogicJndiEnv"></property>
</bean>

<util:properties id="weblogicJndiEnv">
    <prop key="java.naming.factory.initial">weblogic.jndi.WLInitialContextFactory</prop>
    <prop key="java.naming.security.principal">weblogic</prop>
    <prop key="java.naming.security.credentials">weblogic</prop>
    <prop key="java.naming.provider.url">t3://#{ systemProperties['listenurl'] }</prop>
</util:properties>

<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
    <property name="dataSource" ref="dataSource"></property>
    <property name="jtaTransactionManager" ref="transactionManager"></property>
    <property name="hibernateProperties">
        <props>
            <prop key="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</prop>
            <prop key="hibernate.current_session_context_class">jta</prop>  
            <prop key="hibernate.transaction.factory_class">org.hibernate.transaction.CMTTransactionFactory</prop>  
            <prop key="hibernate.transaction.jta.platform">org.hibernate.service.jta.platform.internal.WeblogicJtaPlatform</prop>
            <prop key="hibernate.connection.release_mode">auto</prop>  
            <prop key="hibernate.transaction.auto_close_session">true</prop>
        </props>
    </property>
    <property name="packagesToScan" value="abc.xyz" />
</bean>

以上配置中是否有任何遗漏?

0 个答案:

没有答案