繁体   English   中英

我无法配置两个数据源JPA Spring XML WildFly

[英]I can not have two datasources configured JPA Spring XML WildFly

XML中的Spring配置

<jee:jndi-lookup id="datas1" expected-type="javax.sql.DataSource"
    jndi-name="java:/jndi1" />

<jee:jndi-lookup id="datas2" expected-type="javax.sql.DataSource" 
    jndi-name="java:/jndi2" />

<bean id="EntityM"
    class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
    <property name="dataSource" ref="datas1" />
    <property name="packagesToScan" value="package.persistence.entity" />
    <property name="jpaVendorAdapter">
        <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
            <property name="showSql" value="true" />
            <property name="generateDdl" value="false" />
            <property name="databasePlatform" value="org.hibernate.dialect.Oracle12cDialect" />
        </bean>
    </property>
</bean>

<bean id="txManager" class="org.springframework.orm.jpa.JpaTransactionManager">
    <property name="entityManagerFactory" ref="EntityM" />
</bean>

例外是:

上下文初始化失败: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'springSessionJdbcOperations' defined in class path resource [org/springframework/session/jdbc/config/annotation/web/http/JdbcHttpSessionConfiguration.class]: Unsatisfied dependency expressed through method 'springSessionJdbcOperations' parameter 0: No qualifying bean of type [javax.sql.DataSource] is defined: expected single matching bean but found 2: datas1,datas2; nested exception is org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying bean of type [javax.sql.DataSource] is defined: expected single matching bean but found 2: datas1,jndi2. org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'springSessionJdbcOperations' defined in class path resource [org/springframework/session/jdbc/config/annotation/web/http/JdbcHttpSessionConfiguration.class]: Unsatisfied dependency expressed through method 'springSessionJdbcOperations' parameter 0: No qualifying bean of type [javax.sql.DataSource] is defined: expected single matching bean but found 2: datas1,datas2; nested exception is org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying bean of type [javax.sql.DataSource] is defined: expected single matching bean but found 2: datas1,jndi2.

我无法配置两个数据源,第一个数据源用于entityManagar,第二个数据源用于调用存储过程。

JdbcSessionConfiguration需要名称为“ dataSource”的类型为“ DataSource”的bean。 如果找不到此文件,spring会尝试使用类型为“ DataSource”的bean,而忽略其名称。 因为有两个这种类型的bean,所以将引发异常。

解决方案:将要与EntityManager一起使用的DataSource bean从“ datas1”重命名为“ dataSource”。

Spring应该能够创建JdbcSessionConfiguration,并且您可以根据需要使用'datas2'。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM