所以,我有一个无法解决的问题。 我有一个带弹簧启动器的多模块gradle项目。使用Jpa,Elastic,OrientDb和弹簧数据和弹簧集成提供的其他配置。我尝试启动我的Web应用程序!写web启动器,进行注释扫描,所以当我使用任务'gradle bootRun' - 一切都很完美 - 应用程序工作,所有上下文和生活都很好。但是,当我尝试使用我最喜欢的IDE,如Intellij的想法,或同事使用Eclipse - 得到一个错误:
org.springframework.beans.factory.BeanCreationExce ption: Error creating bean with
name 'org.springframework.integration.config.IdGenerato rConfigurer#0':
BeanPostProcessor before instantiation of bean failed; nested exception is
org.springframework.beans.factory.BeanCreationExce ption: Error creating bean with
name org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration':
Initialization of bean failed; nested exception is java.lang.NoSuchMethodError:
org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration.setBeanFactory(Lo rg/springframework/beans/factory/BeanFactoryV
原因是(projectName - 是假的):
java.lang.RuntimeException: error trying to scan <jar-file>:
file:/home/<user>/project/<projectName>/classes/production/<projectName>-system-webapp/
但我没有 /projectName/classes/production/
文件夹!无论如何 - 通过gradle它的工作正常。
老实说,在此之前又出现了另一个错误:
Error creating bean with name 'entityManagerFactory' defined in class com.project.system.jpa.PepperJpaConfiguration: Invocation of init method failed
caused by:
error trying to scan <jar-file>: file:/home/<user>/project/<projectName>/classes/production/<projectName>-system-webapp/
谢谢你的建议!可以提供更多信息。
P.S:已编辑
所以,问题解决了: 我不提供重要的错误堆栈跟踪,如:
at org.hibernate.ejb.packaging.NativeScanner.getFilesInJar(NativeScanner.java:195)
at org.hibernate.ejb.Ejb3Configuration.addScannedEntries(Ejb3Configuration.java:506)
at org.hibernate.ejb.Ejb3Configuration.scanForClasses(Ejb3Configuration.java:861)
... 21 more
Caused by: java.io.IOException: invalid constant type: 18 at 50
这就是JDK8-Hibernate-javassist问题https://hibernate.atlassian.net/browse/HHH-8286 将javassist版本升级到3.18.1-GA时 - 所有问题都解决了(但为什么通过gradle运行完美...)