2016-05-11 20 views
5

Tôi đang cố truy cập bộ sưu tập mongodb qua SDR. Làm việc với các phiên bản sau hiệnphần còn lại dữ liệu mùa xuân mongodb java.lang.IllegalArgumentException: PersistentEntity không được rỗng

<spring.version>4.1.9.RELEASE</spring.version> 
    <spring-data-rest>2.4.4.RELEASE</spring-data-rest> 
    <spring-data-mongodb>1.8.4.RELEASE</spring-data-mongodb> 

kho của tôi trông giống như

@RepositoryRestResource 
@PreAuthorize("hasAuthority('ROLE_USER')") 
public interface LinksRepository extends MongoRepository<Link, String> { 
Page<Link> findAllByUsefulURLRegex(@Param("regex") String regex, Pageable p); 

Mô hình của tôi được định nghĩa như sau

@Document(collection = "links") 
public class Link { 
    public Link() {} 
    @Id 
    private String id; 

Khi tôi nhấn http://localhost:9090/api/links tôi nhận được ngoại lệ sau đây

java.lang.IllegalArgumentException: PersistentEntity must not be null! 
    at org.springframework.util.Assert.notNull(Assert.java:112) 
    at org.springframework.data.rest.webmvc.PersistentEntityResource$Builder.<init>(PersistentEntityResource.java:139) 
    at org.springframework.data.rest.webmvc.PersistentEntityResource$Builder.<init>(PersistentEntityResource.java:122) 
    at org.springframework.data.rest.webmvc.PersistentEntityResource.build(PersistentEntityResource.java:114) 
    at org.springframework.data.rest.webmvc.PersistentEntityResourceAssembler.wrap(PersistentEntityResourceAssembler.java:102) 
    at org.springframework.data.rest.webmvc.PersistentEntityResourceAssembler.toResource(PersistentEntityResourceAssembler.java:83) 
    at org.springframework.data.rest.webmvc.PersistentEntityResourceAssembler.toResource(PersistentEntityResourceAssembler.java:45) 
    at org.springframework.data.web.PagedResourcesAssembler.createResource(PagedResourcesAssembler.java:182) 
    at org.springframework.data.web.PagedResourcesAssembler.toResource(PagedResourcesAssembler.java:115) 
    at org.springframework.data.rest.webmvc.AbstractRepositoryRestController.entitiesToResources(AbstractRepositoryRestController.java:127) 
    at org.springframework.data.rest.webmvc.AbstractRepositoryRestController.toResources(AbstractRepositoryRestController.java:88) 
    at org.springframework.data.rest.webmvc.AbstractRepositoryRestController.toResource(AbstractRepositoryRestController.java:110) 
    at org.springframework.data.rest.webmvc.RepositorySearchController.executeSearch(RepositorySearchController.java:185) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:497) 
    at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:222) 
    at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:137) 
    at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:110) 
    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:775) 
    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:705) 
    at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85) 
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:959) 
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:893) 
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:965) 
    at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:856) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:622) 

Đào một chút tôi thấy MongoMappingContext không có lớp Liên kết như nó phải (tôi đoán)

enter image description here

Tôi đã dành vài giờ cố gắng tìm nó ra nhưng không có may mắn. Tôi là không sử dụng khởi động mùa xuân và nó cảm thấy nó có thể là một vấn đề ObjectMapper nhưng tôi không biết, tên miền của tôi và thiết lập là đơn giản .... bất kỳ trợ giúp được đánh giá cao.

Xin cảm ơn trước.

Trả lời

3

Sau một công bằng lượng thời gian đầu tư vào gỡ lỗi này để can đảm tôi quản lý để làm cho nó làm việc mà không bất kỳ thay đổi mã đứng về phía tôi với cấu hình sau:

<spring.version>4.1.8.RELEASE</spring.version> 
    <spring-data-rest>2.3.2.RELEASE</spring-data-rest> 
    <spring-data-mongodb>1.8.0.RELEASE</spring-data-mongodb> 
    <spring-data-jpa>1.9.0.RELEASE</spring-data-jpa> 

Nó có thể làm việc với sự kết hợp khác . Hãy cẩn thận.

+0

Bạn đã quản lý để tìm ra nguyên nhân gây ra lỗi cho bạn? Tôi đang sử dụng bản phát hành nền tảng "Athens-SR3' của Spring Platform và đang chạy vào cùng một vấn đề với MongoDB và' PersistentEntityResourceAssembler'. – woemler

+0

Không, tôi không xin lỗi. Kể từ khi nó làm việc tôi đã ngừng chơi với cấu hình này. Tôi chắc chắn ngay sau khi tôi nâng cấp hoặc một cái gì đó tôi sẽ phải xem lại nó ... – felipe

+0

FWIW, tôi nhận được lỗi này trong các thử nghiệm của tôi với 'MockMvc', nhưng không phải khi chạy ứng dụng với Spring Boot. – woemler

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