2017-10-31 12 views
0

をインスタンス化に失敗しましたは、私は次のコードでは、私は、ユーザーのセッションを取得したいが、私はAPIを呼び出すとき、それは私の詳細は以下の通りですエラーを与え、春のフレームワークを使用していますPersistentEntityResourceAssembler

コントローラ

@Controller() 
public class SessionController { 

    @Autowired UserRepository userRepo; 

    @RequestMapping(value = "api/session", method = RequestMethod.GET) 
    public @ResponseBody ResponseEntity<?> getUserSession(Authentication authentication, 
      PersistentEntityResourceAssembler assembler){  
     User user = null; 
     if(authentication != null && authentication.getPrincipal() !=null){ 
      GalaxUser principal = (GalaxUser) authentication.getPrincipal(); 
      user = userRepo.findByName(principal.getUsername()); 
     } 
     if(user==null){ 
      return ResponseEntity.status(HttpStatus.UNAUTHORIZED).build(); 
     } 
     return ResponseEntity.ok(assembler.toResource(user)); 
    } 
    } 

APIhttp://localhost:8080/api/session

エラー

org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.data.rest.webmvc.PersistentEntityResourceAssembler]: No default constructor found; nested exception is java.lang.NoSuchMethodException: org.springframework.data.rest.webmvc.PersistentEntityResourceAssembler.<init>() 
    at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:105) 
    at org.springframework.web.method.annotation.ModelAttributeMethodProcessor.createAttribute(ModelAttributeMethodProcessor.java:141) 
    at org.springframework.web.servlet.mvc.method.annotation.ServletModelAttributeMethodProcessor.createAttribute(ServletModelAttributeMethodProcessor.java:81) 
    at org.springframework.web.method.annotation.ModelAttributeMethodProcessor.resolveArgument(ModelAttributeMethodProcessor.java:101) 
    at org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:121) 
    at org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:158) 
    at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:128) 
    at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97) 
    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827) 
    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738) 
    at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85) 
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967) 
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901) 
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970) 
    at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:635) 

実際のエラー: あなたは@Controllerの代わりに@RepositoryRestControllerを使用する必要があります[org.springframework.data.rest.webmvc.PersistentEntityResourceAssembler]: No default constructor found; nested exception is java.lang.NoSuchMethodException: org.springframework.data.rest.webmvc.PersistentEntityResourceAssembler.<init>()

答えて

1

これで問題は今replaによって解決されています次の文 return new ResponseEntity<User>(user, HttpStatus.OK);

でreturn文をcingして動作していないレスポンスボディ

0
  1. 最初のものをインスタンス化できませんでした。親切に、編集されたエラー・スタックについて として渡すよりも、それをむしろautowire:
  2. @RepositoryRestControllerを使用して、@ResponseBody

    @RequestMapping(value = "api/session", method = RequestMethod.GET) public ResponseEntity<PersistentEntityResource> getUserSession(Authentication authentication, PersistentEntityResourceAssembler assembler){

EDITの下に与えられたとして、あなたが@ResponseEntityを返却する必要があるので、いけない仕事しますパラメータ

@Autowired 
    private PersistentEntityResourceAssembler assembler; 
+0

からPersistentEntityResourceAssembler assemblerを削除...今では、セッションの方法を見つけ、404 – SFAH

+0

あなたのマッピングが作業イマイチのように、あなたが実際のエラーログを共有することができますを返すカントbcoz上記の変更の – Mudassar

+0

編集した質問を確認してください – SFAH

関連する問題