我尝试设置一个基本的SolrRepository应用程序并在ApplicationContext加载期间出现此错误:
Caused by: java.lang.IllegalArgumentException: Environment must not be null!
at org.springframework.util.Assert.notNull(Assert.java:112)
at org.springframework.data.repository.config.RepositoryConfigurationSourceSupport.figurationSourceSupport.java:50)
at org.springframework.data.repository.config.AnnotationRepositoryConfigurationSource.figurationSource.java:74)
at org.springframework.data.repository.config.RepositoryBeanDeFinitionRegistrarSupport.registerBeanDeFinitions(RepositoryBeanDeFinitionRegistrarSupport.java:74)
at org.springframework.context.annotation.ConfigurationClassparser.processImport(ConfigurationClassparser.java:394)
at org.springframework.context.annotation.ConfigurationClassparser.doProcessConfigurationClass(ConfigurationClassparser.java:204)
at org.springframework.context.annotation.ConfigurationClassparser.processConfigurationClass(ConfigurationClassparser.java:163)
at org.springframework.context.annotation.ConfigurationClassparser.parse(ConfigurationClassparser.java:138)
at org.springframework.context.annotation.ConfigurationClasspostProcessor.processConfigBeanDeFinitions(ConfigurationClasspostProcessor.java:284)
at org.springframework.context.annotation.ConfigurationClasspostProcessor.postProcessBeanDeFinitionRegistry(ConfigurationClasspostProcessor.java:225)
at org.springframework.context.support.AbstractApplicationContext.invokebeanfactoryPostProcessors(AbstractApplicationContext.java:630)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:461)
at org.springframework.test.context.support.AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:120)
at org.springframework.test.context.support.AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:60)
at org.springframework.test.context.support.AbstractDelegatingSmartContextLoader.delegateLoading(AbstractDelegatingSmartContextLoader.java:100)
at org.springframework.test.context.support.AbstractDelegatingSmartContextLoader.loadContext(AbstractDelegatingSmartContextLoader.java:248)
at org.springframework.test.context.CacheAwareContextLoaderDelegate.loadContextInternal(CacheAwareContextLoaderDelegate.java:64)
at org.springframework.test.context.CacheAwareContextLoaderDelegate.loadContext(CacheAwareContextLoaderDelegate.java:91)
... 28 more
这是我的ConfigClass:
@Configuration
@PropertySource("classpath:sandBox.properties")
@ComponentScan("sandBox.solr")
@EnableSolrRepositories(basePackages = { "sandBox.solr.repository" },multicoreSupport = true)
public class StreamingSolrConf {
@Resource
private Environment env;
@Bean
public Solrserver solrserver() {
return new HttpSolrserver(env.getrequiredProperty("solr.server.url"));
}
@Bean
public SolrTemplate solrTemplate() {
return new SolrTemplate(solrserver());
}
}
和我的存储库界面:
package sandBox.solr.repository;
import org.springframework.data.solr.repository.solrCrudRepository;
public interface SandBoxRepository extends SolrCrudRepository
无法理解为什么环境不会在弹簧环境中的正确时间注入.
我错过了什么 ?
问候.
最佳答案
只是为了解决这个问题(见原始问题的评论):
他正在使用spring-data-solr-1.2.1.RELEASE和spring-3.2.8.RELEASE.
降级到spring-data-solr-1.1.3-RELEASE并继续使用spring-3.2.8.RELEASE或升级到spring-3.2.9.RELEASE以保持spring-data-solr-1.2.1.RELEASE将解决问题.