浪也回头 2015-05-04 13:06 采纳率: 0%
浏览 865

spring+jpa+activiti,Tomcat启动出错

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'approvationService': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private main.java.org.beifeng.oa.dao.ApprovationRepository main.java.org.beifeng.oa.service.impl.ApprovationServiceImpl.approvationRepository; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'approvationRepository': Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: Not an managed type: class main.java.org.beifeng.oa.entity.Approvation

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-08-03 19:28
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    这个问题是由于Spring和Activiti之间的依赖关系导致的。在你的应用程序中,你可能有以下两个bean:

    1. ApprovalService: 这个bean是通过@Autowired注解注入到其他bean中的。

    2. ApprovalRepository: 这个bean是通过@Repository注解定义的,并且它是一个JpaRepository接口的实现类。

    现在,当Tomcat尝试启动时,它会尝试创建ApprovalService对象,但是由于没有找到合适的ApprovalRepository对象,所以报错了。

    解决这个问题的方法如下:

    1. 将ApprovalRepository移至一个单独的包或模块中,以便于Spring管理。例如,在application.properties文件中添加以下配置:
    spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
    
    1. 在ApplicationContext.xml中删除ApprovalRepository的依赖,或者将它从依赖列表中删除。这样就可以避免CircularDependency问题了。

    2. 如果你使用的是Tomcat 8.0及以上版本,可以考虑将ApprovalRepository移到Spring容器外部,例如将其放在一个独立的Java类中,并使用@Bean方法来创建这个类的对象。

    3. 如果以上方法都无法解决问题,那么你需要检查是否有任何冲突的bean定义。确保所有bean的名称、类型、作用域等都是一致的。

    如果你能提供更多的代码细节,我可以帮助你更精确地定位问题所在。

    评论

报告相同问题?