i获得 Error creating bean with name 'classifierSolrRepository': Invocation of init method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.data.solr.repository.support.SimpleSolrRepository]: Constructor threw exception; nested exception is java.lang.NullPointerException
。
classifiersolrrepository类:
public interface ClassifierSolrRepository extends SolrCrudRepository<ClassifierSolr, String>
{
public List<ClassifierSolr> findByClassifierid(long id);
public List<ClassifierSolr> findByLanguage(String language);
public ClassifierSolr findByLanguageAndClassifierid(String language, long id);
public ClassifierSolr findByLanguageAndCode(String language, String code);
}
classifierlr类:
public class ClassifierSolr {
@Field("id_s")
private String id;
@Field("name_s")
private String name;
@Field("desc_s")
private String desc;
@Field("classifierid_l")
private long classifierid;
@Field("code_s")
private String code;
@Field("language_s")
private String language;
//getters and setters
}
最后我的solr配置:
@Configuration
@PropertySource("classpath:application.properties")
@EnableSolrRepositories("lt.gerasolutions.gsm.core.solrRepositories")
public class SolrContext {
private static final String PROPERTY_NAME_SOLR_SERVER_URL = "solr.host";
@Resource
private Environment environment;
@Bean
public SolrClient solrClient(){
return new HttpSolrClient(environment.getRequiredProperty(PROPERTY_NAME_SOLR_SERVER_URL));
}
@Bean
public SolrTemplate solrTemplate(){
//return new SolrTemplate(solrClient(), "Classifiers");
return new SolrTemplate(solrClient());
}
}
我看到它失败的唯一原因是方法名称和字段的不匹配,但这似乎并非如此。
如果有人偶然发现了同一问题 - 因为我有 solr-solrj / solr-core
以及 spring-data-solr
maven依赖关系,所以它行不通。除了spring-data-solr
以外的所有内容(并相应地将SolrClient
更改为SolrServer
),一切都开始工作。