2016-05-11 13 views
5

SDR aracılığıyla bir mongodb koleksiyonuna erişmeye çalışıyorum. Ben http://localhost:9090/api/links aşağıdaki özel durum alıyorum vurduğundayay verileri kalan mongodb java.lang.IlegalArgumentException: PersistentEntity boş olmamalıdır

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

aşağıdaki gibi aşağıdaki sürümleri ile çalışma şu anda

<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> 

Benim depo görünüyor

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

gibi Benim modelim tanımlanır

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) 
Ben bunu anlamaya ama hiçbir şans çalışırken birkaç saat geçirdim

enter image description here

Ben (sanırım) gerektiği gibi MongoMappingContext sınıf Linki yok bulundu biraz Kazı

. Ben bahar önyükleme kullanmıyorum ve bir ObjectMapper sorun olabileceğini hissediyorum ama ben, benim etki alanı ve kurulum basit olduğunu bilmiyorum .... herhangi bir yardım büyük takdir.

Şimdiden teşekkürler.

cevap

3

Ben şu yapılandırma ile yanımda herhangi bir kod değişikliği olmadan çalışması için yönetilen bağırsaklarına bu ayıklama yatırım bir zaman haksız miktar sonra:

<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> 

Başka kombinasyonu ile işe yarayabilecek . Sadece dikkat et.

+0

Hataların neden kaynaklandığını buldunuz mu? Spring Platformu 'Atina-SR3' sürümünü kullanıyorum ve MongoDB ve' PersistentEntityResourceAssembler' ile aynı konuya koşuyorum. – woemler

+0

Hayır Üzgünüm Çalıştığından beri bu konfigürasyonla uğraşmayı bıraktım. Ben yükseltme ya da bir şey yeniden gözden geçirmek zorunda kalacak en kısa sürede eminim ... – felipe

+0

FWIW, bu hatayı "MockMvc" ile yaptığım testlerde görüyorum, fakat uygulamayı Spring Boot ile çalıştırırken değil. – woemler

İlgili konular