2015-03-31 23 views
8

Tôi đang gặp cấu hình nàyMongo: kho không còn hoạt động

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" 
    xmlns:mongo="http://www.springframework.org/schema/data/mongo" 
    xsi:schemaLocation="http://www.springframework.org/schema/context 
     http://www.springframework.org/schema/context/spring-context.xsd 
     http://www.springframework.org/schema/data/mongo 
     http://www.springframework.org/schema/data/mongo/spring-mongo.xsd 
     http://www.springframework.org/schema/beans 
     http://www.springframework.org/schema/beans/spring-beans.xsd"> 

    <mongo:repositories base-package="com.x.record.persistence.repo" 
     mongo-template-ref="mongoTemplate" /> 

    <context:component-scan base-package="com.x.record.persistence.impl" /> 

</beans> 

nơi trong gói com.x.record.persistence.impl Tôi có một thành phần cần kho từ com.x.record.persistence.repo.

này đang làm việc cho phiên bản mùa xuân-dữ liệu MongoDB 1.5.2.RELEASE

Nếu tôi nâng cấp lên bất kỳ phiên bản lớn hơn 1.6.0.RELEASE (Tôi đã thử với 1.6.2 và 1.7.0) này công việc ngắn hạn. Dường như việc quét kho lưu trữ mongo không hoạt động và tôi gặp lỗi:

org.springframework.beans.factory.BeanCreationException: 
Error creating bean with name 'noAuthRecordPersistenceService': Injection of autowired dependencies failed; 
nested exception is org.springframework.beans.factory.BeanCreationException: 
Could not autowire field: private com.x.record.persistence.repo.RecordRepository com.x.record.persistence.impl.NoAuthRecordPersistenceServiceImpl.repo; 
nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: 
No qualifying bean of type [com.x.record.persistence.repo.RecordRepository] found for dependency: 
expected at least 1 bean which qualifies as autowire candidate for this dependency. 
Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)} 

Bất kỳ ý tưởng nào?

UPDATE: Nếu tôi sử dụng MongoRepository thay vì PagingAndSortingRepository nó hoạt động:

NÀY KHÔNG LÀM VIỆC (với 1.6.x trở lên): public interface RecordRepository kéo dài PagingAndSortingRepository, RecordRepositoryCustom {

Page<Record> findByOrgHierarchy(String orgId, Pageable pageable); 

    Record findOneByIdAndOrgHierarchyIn(String id, Collection<String> orgIds); 

    int countByGsRunId(String gsRunId); 

} 

CÔNG TRÌNH NÀY (với 1.6.x trở lên): giao diện công cộng RecordRepository mở rộng MongoRepository, RecordRepositoryCustom {

Page<Record> findByOrgHierarchy(String orgId, Pageable pageable); 

    Record findOneByIdAndOrgHierarchyIn(String id, Collection<String> orgIds); 

    int countByGsRunId(String gsRunId); 

} 

Điều wirdest là tôi có Repos khác mà làm việc với PagingAndSortingRepository

+0

noAuthRecordPersistenceService của bạn nằm ở đâu? Nó có thể là bối cảnh của bạn: quét thành phần quá hẹp và dịch vụ đó không được khởi tạo vào mùa xuân. – sfat

+0

Tôi đã thử cấu hình này và nó hoạt động với cả hai phiên bản: 1.5.X và 1.6.X. Bạn có thể chia sẻ nhiều dữ liệu hơn: pom.xml, kho lưu trữ và mã dịch vụ, v.v ... không? – jfcorugedo

Trả lời

0

mẫu Cố gắng here, nếu điều này làm việc trong phiên bản mới nhất sau đó có thể của nó rằng một số thành phần của bạn vẫn còn sử dụng một phiên bản cũ hơn và tình trạng không tương thích có thể tồn tại.

Dán mã hoàn chỉnh của bạn để cộng đồng có thể kiểm tra vấn đề.

Các vấn đề liên quan