Spring Data Solr с многоядерными Solr 4.1

    Trying to implement Spring-Data-Solr with Solr 4.1 multicores, 

При запуске сервера появляется следующее исключение, я предполагаю, что где-то ожидается конструктор по умолчанию. Итак, есть ли ограничение Spring-data-solr с помощью реализации solr muticores, вот моя реализация,

хранилища

    public interface MembershipDocumentRepository extends
            CustomMembershipDocumentRepository,
            SolrCrudRepository<MembershipDocument, String> {
    }


 created 'repository' manually instead of autowiring/injection.......

    @Service
    public class RepositoryMembershipIndexService implements MembershipIndexService {   
        @Autowired
        private SolrTemplate solrMembershipTemplate;

        private MembershipDocumentRepository repository = new SolrRepositoryFactory(
                this.solrMembershipTemplate)
                .getRepository(MembershipDocumentRepository.class);

        @Transactional
        @Override
        public void addToIndex(Membership membershipEntry) {
            MembershipDocument document = MembershipDocument.getBuilder(
                    ...           
            repository.save(document);
        }
    }

ApplicationContext-solr.xml

        <solr:repositories
            base-package="net.pegonwheels.spring.datasolr.domain.repository.solr" />
        <beans profile="prod">
            <solr:solr-server id="solrMembershipServer" url="${solr.server.url.membership}" />
            <bean id="solrMembershipTemplate" class="org.springframework.data.solr.core.SolrTemplate">
                <constructor-arg ref="solrMembershipServer" />
            </bean>
        </beans>

исключение

    At server startup getting following exception, I guess it expecting a default constructor somewhere. So, is there a limitation of spring-data-solr with solr muticores implementation. Can somebody please help me, thanks a ton in advance.

org.springframework.beans.factory.BeanCreationException: ошибка создания бина с именем 'repositoryMembershipIndexService', определенного в файле [/home/rupanjan/Installations/apache-tomcat-7.0.39/webapps/pegonwheels-server/WEB-INF/classes/ /pegonwheels/spring/datasolr/domain/service/RepositoryMembershipIndexService.class]: не удалось создать экземпляр компонента; вложенным исключением является org.springframework.beans.BeanInstantiationException: не удалось создать экземпляр класса бина [net.pegonwheels.spring.datasolr.domain.service.RepositoryMembershipIndexService]: конструктор вызвал исключение; вложенным исключением является java.lang.IllegalArgumentException: [утверждение не выполнено] - этот аргумент обязателен; он не должен быть пустым на org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessPropertyValues ​​(CommonAnnotationBeanPostProcessor.java:306) в org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1120) в org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522) в org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461) в org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295) в org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223) в org.springframework.beans.factory.Bean.Bean.Fe) в org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194) в org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:607) в org.springframework.context.support.,:283) в org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:112) в org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4887ore) в org.ap.StandardContext.startInternal(StandardContext.java:5381) в org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) в org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901) в org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877) в org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633).apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:977) в org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1655) в java.util.concurrent.Executors$RunnallAdapter (Executors.java:439) на java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) на java.util.concurrent.FutureTask.run(FutureTask.java:138) на java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895) в java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918) в java.lang.Thread.run(Thread.java:662)

1 ответ

В коде у вас есть

private MembershipDocumentRepository repository = new SolrRepositoryFactory(this.solrMembershipTemplate)
       .getRepository(MembershipDocumentRepository.class);

но твой MembershipDocumentRepository не может быть построен без пользовательской реализации CustomMembershipDocumentRepository,

если вы реализовали это, проверьте name.it должен быть в том же пакете, что и MembershipDocumentRepository и назвал MembershipDocumentRepositoryImpl (это название по умолчанию для него.

Другие вопросы по тегам