首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spring + Spring数据提交器在未初始化的entityManagerFactory bean上出现错误

Spring + Spring数据提交器在未初始化的entityManagerFactory bean上出现错误
EN

Stack Overflow用户
提问于 2022-05-02 16:27:21
回答 1查看 583关注 0票数 0

我想使用对我的项目中的一些表进行审计,但是我得到了一些错误。我有两个春季启动项目,索赔和InsureConnect。InsureConnect是索赔中的依赖项。

索赔具有Spring数据提交器依赖关系

代码语言:javascript
复制
<dependency>
    <groupId>org.springframework.data</groupId>
    <artifactId>spring-data-envers</artifactId>
    <version>2.6.4</version>
</dependency>

项目索赔中的JPA配置如下所示。我在索赔项目中有JPA存储库

代码语言:javascript
复制
@Configuration
@EnableJpaRepositories(entityManagerFactoryRef = "claimsTransEntityManagerFactory",
        transactionManagerRef = "claimsTransTransactionManager", basePackages={"com.metamorphosys.claims.jpa.transaction"})
public class ClaimsTransactionConfig {

    private static final Logger LOGGER =  LoggerFactory.getLogger(ClaimsTransactionConfig.class);
    
    @Bean
    PlatformTransactionManager claimsTransTransactionManager() {
        return new JpaTransactionManager(claimsTransEntityManagerFactory().getObject());
    }

    @Bean
    LocalContainerEntityManagerFactoryBean claimsTransEntityManagerFactory() {
    HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
    //code...
    }

ClaimsApplication.java

代码语言:javascript
复制
@SpringBootApplication(scanBasePackages ={"com.metamorphosys"})
@EnableJpaRepositories(repositoryFactoryBeanClass = EnversRevisionRepositoryFactoryBean.class)
public class ClaimsApplication{
//code
}

对于InsureConnect项目,下面是transactionConfig.java。

代码语言:javascript
复制
@Configuration
public class TransactionConfig {

    private static final Logger LOGGER =  LoggerFactory.getLogger(TransactionConfig.class);
    
    @Bean
    @Primary
    PlatformTransactionManager transTransactionManager() {
        return new JpaTransactionManager(transEntityManagerFactory().getObject());
    }

    @Bean
    @Primary
    LocalContainerEntityManagerFactoryBean transEntityManagerFactory() {

        HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
        // code

}

InsureConnectApplication.java

代码语言:javascript
复制
@SpringBootApplication
@EnableAsync
@ImportResource({ "classpath*:config/*.xml" })
@EnableJpaRepositories(entityManagerFactoryRef = "transEntityManagerFactory",
transactionManagerRef = "transTransactionManager", basePackages={"com.metamorphosys.insureconnect.jpa.transaction"}
,repositoryFactoryBeanClass = BaseRepositoryFactoryBean.class)
public class InsureConnectApplication implements ApplicationContextAware {

    private static final Logger log = LoggerFactory.getLogger(InsureConnectApplication.class);
}

Insureconnect不具有Spring依赖关系

现在,当我运行Claims时,TransactionConfig在insureConnect项目中的错误如下。

代码语言:javascript
复制
Cannot create inner bean '(inner bean)#64ba4522' of type [org.springframework.orm.jpa.SharedEntityManagerCreator] while setting bean property 'entityManager'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name '(inner bean)#64ba4522': Cannot resolve reference to bean 'transEntityManagerFactory' while setting constructor argument; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'transEntityManagerFactory' defined in class path resource [com/metamorphosys/insureconnect/dataobjects/transaction/TransactionConfig.class]: Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: javassist/bytecode/ClassFile

如果我移除Spring Envers依赖项,则该项目运行良好。

有人能帮我理解为什么在使用Envers时会出现错误吗?提前谢谢。

注-我使用的是2.6.4v的Spring-数据-envers。

EN

回答 1

Stack Overflow用户

发布于 2022-05-19 08:01:34

我的申请也有类似的问题。最后,我将jpa初学者添加到我的pom中,然后我的应用程序开始工作:

代码语言:javascript
复制
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>

我认为这个启动程序加载了一些额外的内容,即没有/或加载。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72089601

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档