2016-05-11 8 views
5

私はSDR経由でmongodbコレクションにアクセスしようとしています。私は次の例外スプリングデータ休止mongodb java.lang.IllegalArgumentException:PersistentEntityがnullであってはなりません

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) 
を取得 http://localhost:9090/api/linksを打つときに私のモデルは

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

を次のように定義されて

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

のように、次のバージョンでの作業現在

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

私のリポジトリが見えます私はそれを把握しないが、運しようとして数時間を過ごした

enter image description here

私はそれが(私が推測する)必要があるとしてMongoMappingContextがクラスリンクを持っていない見つけ少し掘る

。私はを使用していません。スプリングブートを使用していないと、ObjectMapperの問題である可能性がありますが、わかりません。ドメインと設定は簡単です。

ありがとうございます。

答えて

3

私はそれが次のように構成された私の側で任意のコードを変更せずに動作させるために、管理根性にこれをデバッグするに投資した時間の不公平量は、後:

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

それは別の組み合わせで動作するかもしれません。ただ気をつけてください。

+0

あなたはエラーの原因を突き止めることができましたか?私はSpring Platformの 'Athens-SR3'リリースを使用していますが、MongoDBとPersistentEntityResourceAssemblerで同じ問題が発生しています。 – woemler

+0

いいえ、申し訳ありません。それが働いたので、私はこの設定で手を止めました。私はアップグレードしたり、何かを再訪しなければならないと確信しています。 – felipe

+0

FWIW、私のテストでは 'MockMvc'でこのエラーが出ますが、SpringBootでアプリケーションを実行しているときは表示されません。 – woemler

関連する問題