Skip to content

fegin接口GET方法,使用@RequestBody 注解参数异常 #5

@panjianping

Description

@panjianping
  1. spring-boot 版本为 2.0.8 ; spring-cloud 版本为F版SR2
  2. fegin接口定义
@GetMapping("/api/comment/ids")
ResponseVo<Integer> findCommentTmp(@RequestBody ArrayList<Long> ids);
  1. 实现类1:加@RequestBody
@Override
public ResponseVo<Integer> findCommentTmp(@RequestBody ArrayList<Long> ids) {
	log.info("ids:{}",ids);
	return null;
}

报错(没有集成venus-cloud-feign是正常的):

org.springframework.http.converter.HttpMessageNotReadableException: Required request body is missing: public com.lx.core.model.ResponseVo<java.lang.Integer> com.lx.comment.api.CommentApiServiceImpl.findCommentTmp(java.util.ArrayList<java.lang.Long>)
	at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.readWithMessageConverters(RequestResponseBodyMethodProcessor.java:160)
	at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.resolveArgument(RequestResponseBodyMethodProcessor.java:130)
	at org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:124)
	at org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:161)
	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:131)
	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)
	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:891)
	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:797)
	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:991)
	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925)
	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:981)
	at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:873)
  1. 实现类2:不加@RequestBody
@Override
public ResponseVo<Integer> findCommentTmp(ArrayList<Long> ids) {
	log.info("ids:{}",ids);
	return null;
}

错误: ids 始终为空值

  1. 如果接口使用POST方法,参数使用@RequestBody,实现类参数加不加@RequestBody,都是正常的能获取ids值

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions