java - 无法实例化 PersistentEntityResourceAssembler

标签 java spring session spring-boot instantiation

我正在使用 spring 框架,在下面的代码中我想获取用户的 session ,但是当我调用 API 时,它给了我一个错误,详细信息如下

Controller

@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));
    }
    }

API:http://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)

实际错误: 实例化失败[org.springframework.data.rest.webmvc.PersistentEntityResourceAssembler]: No default constructor found; nested exception is java.lang.NoSuchMethodException: org.springframework.data.rest.webmvc.PersistentEntityResourceAssembler.<init>()

最佳答案

好的,现在通过用以下语句替换 return 语句来解决问题 return new ResponseEntity<User>(user, HttpStatus.OK);

并删除PersistentEntityResourceAssembler assembler来自响应正文

关于java - 无法实例化 PersistentEntityResourceAssembler,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47028427/

相关文章:

spring - 如何使用 liquibase 在 spring 中从数据库和持久性实体之间的差异生成变更日志?

java - Spring 4 websocket 和 stomp - 未到达 Controller

php - session 登录 - 如果用户不再存在于数据库中,则销毁 session

php - 我如何在 Joomla 2.5 virutemart 上显示购物车中的商品数量?

java - 在 junit 类中有辅助方法

java - 作为接口(interface)实现的抽象工厂模式

java - 使用扩展名 .java 取回数据

java - 如何使用 SimpleMessageListenerContainer 禁用 RabbitMQ 预取计数

java - 如何使用共享的 Tomcat?

java - 用于 QA 测试的后门 API——好还是坏?