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

サーバーの起動時に次の例外が発生するため、どこかにデフォルトのコンストラクターが必要だと思います。では、solr muticores 実装を使用した spring-data-solr の制限はありますか。これが私の実装です。

リポジトリ

    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: ファイル [/home/rupanjan/Installations/apache-tomcat-7.0.39/webapps/pegonwheels-server/WEB-INF/classes/net] で定義された名前 'repositoryMembershipIndexService' を持つ Bean の作成中にエラーが発生しました/pegonwheels/spring/datasolr/domain/service/RepositoryMembershipIndexService.class]: Bean のインスタンス化に失敗しました。ネストされた例外は org.springframework.beans.BeanInstantiationException: Bean クラスをインスタンス化できませんでした [net.pegonwheels.spring.datasolr.domain.service.RepositoryMembershipIndexService]: コンストラクターが例外をスローしました。ネストされた例外は java.lang.IllegalArgumentException: [Assertion failed] - この引数は必須です。org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessPropertyValues(CommonAnnotationBeanPostProcessor.java:

4

1 に答える 1

0

あなたが持っているコードで

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

MembershipDocumentRepositoryのカスタム実装なしではビルドできませんCustomMembershipDocumentRepository

実装した場合は、名前を確認してください。同じパッケージ内にMembershipDocumentRepositoryあり、名前が付けられている必要がありMembershipDocumentRepositoryImplます (これがデフォルトの名前です。

于 2015-02-02T11:39:43.760 に答える