Java 从Synyx Hades迁移到Spring数据JPA

Java 从Synyx Hades迁移到Spring数据JPA,java,spring,spring-data,spring-data-jpa,Java,Spring,Spring Data,Spring Data Jpa,我想从Hades迁移到Spring Data JPA(我知道,已经很晚了)。但是,当我在配置中使用@EnableJpaRepositories注释来启用它时,会出现以下异常: java.lang.IllegalArgumentException: Environment must not be null! at org.springframework.util.Assert.notNull(Assert.java:112) ~[spring-core-3.2.6.RELEASE.jar:

我想从Hades迁移到Spring Data JPA(我知道,已经很晚了)。但是,当我在配置中使用
@EnableJpaRepositories
注释来启用它时,会出现以下异常:

java.lang.IllegalArgumentException: Environment must not be null!
    at org.springframework.util.Assert.notNull(Assert.java:112) ~[spring-core-3.2.6.RELEASE.jar:3.2.6.RELEASE]
    at org.springframework.data.repository.config.RepositoryConfigurationSourceSupport.<init>(RepositoryConfigurationSourceSupport.java:50) ~[spring-data-commons-1.8.0.RELEASE.jar:na]
    at org.springframework.data.repository.config.AnnotationRepositoryConfigurationSource.<init>(AnnotationRepositoryConfigurationSource.java:74) ~[spring-data-commons-1.8.0.RELEASE.jar:na]
    at org.springframework.data.repository.config.RepositoryBeanDefinitionRegistrarSupport.registerBeanDefinitions(RepositoryBeanDefinitionRegistrarSupport.java:74) ~[spring-data-commons-1.8.0.RELEASE.jar:na]
    at org.springframework.context.annotation.ConfigurationClassParser.processImport(ConfigurationClassParser.java:395) ~[spring-context-3.2.3.RELEASE.jar:3.2.3.RELEASE]
    at org.springframework.context.annotation.ConfigurationClassParser.doProcessConfigurationClass(ConfigurationClassParser.java:207) ~[spring-context-3.2.3.RELEASE.jar:3.2.3.RELEASE]
    at org.springframework.context.annotation.ConfigurationClassParser.processConfigurationClass(ConfigurationClassParser.java:165) ~[spring-context-3.2.3.RELEASE.jar:3.2.3.RELEASE]
    at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:131) ~[spring-context-3.2.3.RELEASE.jar:3.2.3.RELEASE]
    at org.springframework.context.annotation.ConfigurationClassParser.doProcessConfigurationClass(ConfigurationClassParser.java:197) ~[spring-context-3.2.3.RELEASE.jar:3.2.3.RELEASE]
    at org.springframework.context.annotation.ConfigurationClassParser.processConfigurationClass(ConfigurationClassParser.java:165) ~[spring-context-3.2.3.RELEASE.jar:3.2.3.RELEASE]
    at org.springframework.context.annotation.ConfigurationClassParser.processImport(ConfigurationClassParser.java:401) ~[spring-context-3.2.3.RELEASE.jar:3.2.3.RELEASE]
    at org.springframework.context.annotation.ConfigurationClassParser.doProcessConfigurationClass(ConfigurationClassParser.java:207) ~[spring-context-3.2.3.RELEASE.jar:3.2.3.RELEASE]
    at org.springframework.context.annotation.ConfigurationClassParser.processConfigurationClass(ConfigurationClassParser.java:165) ~[spring-context-3.2.3.RELEASE.jar:3.2.3.RELEASE]
    at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:140) ~[spring-context-3.2.3.RELEASE.jar:3.2.3.RELEASE]
    at org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:282) ~[spring-context-3.2.3.RELEASE.jar:3.2.3.RELEASE]
    at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:223) ~[spring-context-3.2.3.RELEASE.jar:3.2.3.RELEASE]
    at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:630) ~[spring-context-3.2.3.RELEASE.jar:3.2.3.RELEASE]
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:461) ~[spring-context-3.2.3.RELEASE.jar:3.2.3.RELEASE]
    at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:389) ~[spring-web-3.2.3.RELEASE.jar:3.2.3.RELEASE]
    at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:294) ~[spring-web-3.2.3.RELEASE.jar:3.2.3.RELEASE]
    at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:112) [spring-web-3.2.3.RELEASE.jar:3.2.3.RELEASE]
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4939) [catalina.jar:7.0.42]
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5434) [catalina.jar:7.0.42]
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) [catalina.jar:7.0.42]
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559) [catalina.jar:7.0.42]
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549) [catalina.jar:7.0.42]
    at java.util.concurrent.FutureTask.run(FutureTask.java:262) [na:1.7.0_55]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [na:1.7.0_55]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [na:1.7.0_55]
    at java.lang.Thread.run(Thread.java:744) [na:1.7.0_55]
java.lang.IllegalArgumentException:环境不能为null!
在org.springframework.util.Assert.notNull(Assert.java:112)~[spring-core-3.2.6.RELEASE.jar:3.2.6.RELEASE]
在org.springframework.data.repository.config.RepositoryConfigurationSourceSupport.(RepositoryConfigurationSourceSupport.java:50)~[spring-data-commons-1.8.0.RELEASE.jar:na]
在org.springframework.data.repository.config.AnnotationRepositoryConfigurationSource.(AnnotationRepositoryConfigurationSource.java:74)~[spring-data-commons-1.8.0.RELEASE.jar:na]
在org.springframework.data.repository.config.repositorybeandefinitionregistersupport.registerBeanDefinitions(repositorybeandefinitionregistersupport.java:74)~[spring-data-commons-1.8.0.RELEASE.jar:na]
在org.springframework.context.annotation.ConfigurationClassParser.processImport(ConfigurationClassParser.java:395)~[spring-context-3.2.3.RELEASE.jar:3.2.3.RELEASE]
在org.springframework.context.annotation.ConfigurationClassParser.doProcessConfigurationClass(ConfigurationClassParser.java:207)~[spring-context-3.2.3.RELEASE.jar:3.2.3.RELEASE]
在org.springframework.context.annotation.ConfigurationClassParser.processConfigurationClass(ConfigurationClassParser.java:165)~[spring-context-3.2.3.RELEASE.jar:3.2.3.RELEASE]
在org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:131)~[spring-context-3.2.3.RELEASE.jar:3.2.3.RELEASE]
在org.springframework.context.annotation.ConfigurationClassParser.doProcessConfigurationClass(ConfigurationClassParser.java:197)~[spring-context-3.2.3.RELEASE.jar:3.2.3.RELEASE]
在org.springframework.context.annotation.ConfigurationClassParser.processConfigurationClass(ConfigurationClassParser.java:165)~[spring-context-3.2.3.RELEASE.jar:3.2.3.RELEASE]
在org.springframework.context.annotation.ConfigurationClassParser.processImport(ConfigurationClassParser.java:401)~[spring-context-3.2.3.RELEASE.jar:3.2.3.RELEASE]
在org.springframework.context.annotation.ConfigurationClassParser.doProcessConfigurationClass(ConfigurationClassParser.java:207)~[spring-context-3.2.3.RELEASE.jar:3.2.3.RELEASE]
在org.springframework.context.annotation.ConfigurationClassParser.processConfigurationClass(ConfigurationClassParser.java:165)~[spring-context-3.2.3.RELEASE.jar:3.2.3.RELEASE]
在org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:140)~[spring-context-3.2.3.RELEASE.jar:3.2.3.RELEASE]
在org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:282)~[spring-context-3.2.3.RELEASE.jar:3.2.3.RELEASE]
在org.springframework.context.annotation.ConfigurationClassPostProcessor.PostProcessBeandDefinitionRegistry(ConfigurationClassPostProcessor.java:223)~[spring-context-3.2.3.RELEASE.jar:3.2.3.RELEASE]
在org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:630)~[spring-context-3.2.3.RELEASE.jar:3.2.3.RELEASE]
在org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:461)~[spring-context-3.2.3.RELEASE.jar:3.2.3.RELEASE]
在org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:389)~[spring-web-3.2.3.RELEASE.jar:3.2.3.RELEASE]
在org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:294)~[spring-web-3.2.3.RELEASE.jar:3.2.3.RELEASE]
在org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:112)[spring-web-3.2.3.RELEASE.jar:3.2.3.RELEASE]
在org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4939)[catalina.jar:7.0.42]
在org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5434)[catalina.jar:7.0.42]
在org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)[catalina.jar:7.0.42]
在org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)[catalina.jar:7.0.42]
在org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)[catalina.jar:7.0.42]
在java.util.concurrent.FutureTask.run(FutureTask.java:262)[na:1.7.055]
位于java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)[na:1.7.055]
在java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)[na:1.7.055]
在java.lang.Thread.run(Thread.java:744)[na:1.7.0_55]
由于我不是最有经验的Spring用户,我甚至不知道从哪里开始调试,Google也没有返回任何信息。如果我在某个地方显式地自动连接一个
环境
,我会得到一个,所以我不知道为什么它会在这里为空


我做错了什么?如何修复它?

因此修复相当简单:将所有Spring组件的版本修复到3.2.9后,一切都正常工作


我相当肯定这是由于(多亏了对问题的评论)。

对于初学者来说,修复您的依赖性,您正在混合使用spring 3.2.3和3.2.6 JAR。不要混用JAR的版本。你能添加环境代码吗?@paul Environment是;-)。以前从未使用过,如果是这样的话,也许你可以看看这张票。你愿意试用Spring3.2.9吗?这可能是您出现异常的原因。当然,正如@M.Deinum所说的,不要混用不同的版本。