登录时@RequestBody报的错

  昨天,我看了一下午,最后我们组长帮忙找出来的错,是个神坑!
  关键是git服务器上不报错,可以正常访问。一到本地访问就500了

  【{"success":false,"code":"500","message":"服务器繁忙,请稍后再试!","data":null,"count":0}】

原来的代码写的登录时候:

@Token(key = "telPhone")
    @RequestMapping(value = "/login", method = RequestMethod.POST)
    public Result login(HttpServletRequest request, @RequestBody MemberLoginDTO dto) {
        logger.info("app登录处理参数:MemberLoginDTO = {} ", JSON.toJSONString(dto));
        Result result = ResultUtil.getResult(RespCode.Code.REQUEST_DATA_ERROR);
        if (StringUtils.isBlank(dto.getEquipmentId())) {
            result.setMessage("[设备ID]不能为空");
            return result;
        }
        // 2.登陆认证
        result = memberService.memberLogin(dto);
        logger.info("app登录返回数据:Result = {} ", JSON.toJSONString(result));
        // 3.缓存用户信息
        if (result.isSuccess()) {
            result.setData(UserCacheUtil.addUser(dto.getTelPhone()));
        }
        return result;
    }

控制台上报的错是:

09:48:41.721 [http-nio-10010-exec-3] ERROR com.phshopping.api.base.BaseErrorController - BaseErrorController Throwable :
org.springframework.http.converter.HttpMessageNotReadableException: Required request body is missing: public com.ph.shopping.common.util.result.Result com.phshopping.api.controller.regandlogin.LoginAndRegController.login(javax.servlet.http.HttpServletRequest,com.ph.shopping.facade.member.dto.MemberLoginDTO)
    at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.readWithMessageConverters(RequestResponseBodyMethodProcessor.java:154)
    at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.resolveArgument(RequestResponseBodyMethodProcessor.java:128)
    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:116)
    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:963)
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:897)
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
    at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:648)
    at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165)
    at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165)
    at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:105)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165)
    at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165)
    at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:474)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
    at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:624)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:349)
    at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:783)
    at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
    at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:798)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1434)
    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Thread.java:745)
09:48:41.722 [http-nio-10010-exec-3] ERROR com.phshopping.api.base.BaseErrorController - error message = app数据服务器未知异常 <> Required request body is missing: public com.ph.shopping.common.util.result.Result com.phshopping.api.controller.regandlogin.LoginAndRegController.login(javax.servlet.http.HttpServletRequest,com.ph.shopping.facade.member.dto.MemberLoginDTO)
09:48:41.722 [http-nio-10010-exec-3] ERROR com.phshopping.api.base.BaseErrorController - request error url : http://localhost:10010/api/login

当我把@RequestBody这个注解删除后:本地可以正常访问了

{"success":true,"code":"200","message":"操作成功","data":{"telPhone":"17778051803","memberName":null,"sex":null,"idCardNo":null,"isMarketing":2,"status":2,"headImage":null,"certification":1,"level":1,"id":27068,"token":"3C035091E40BFEDACB2EFB65DC727921",

"tokenToMobile":"B2331252766049858C806D97613C3205","equipmentId":"170976fa8aba22de0f0"},"count":0}

时间: 2024-07-29 01:08:34

登录时@RequestBody报的错的相关文章

SQL Server 因为数据库迁移导致用户登录时总是报 4052 ,15023 等错误。

因周未公司数据库迁移导致周一上班后,数据库连接不上问题,捣鼓老久,在网上度娘上总算找到问题点. 介绍一下sql server中“登录”与“用户”的区别,“登录”用于用户身份验证,而数据库“用户”帐户用于数据库访问和权限验证.登录通过安全识别符 (SID) 与用户关联.将数据库恢复到其他服务器时,数据库中包含一组用户和权限,但可能没有相应的登录或者登录所关联的用户可能不是相同的用户.这种情况被称为存在“孤立用户”.此时是不能通过新建登录或者是对同名登录授予对应数据库的“用户”权限来解决登录问题,因

CentOS命令登录MySQL时,报错ERROR 1045 (28000):

CentOS命令登录MySQL时,报错ERROR 1045 (28000): Access denied for user [email protected] (using password: NO)错误解决方法 1.停用mysql服务:# /etc/rc.d/init.d/mysqld stop 2.输入命令:# mysqld_safe --user=mysql --skip-grant-tables --skip-networking & 3.登入数据库:# mysql -u root my

PostgreSQL添加新服务器连接时,报错“Server doesn&#39;t listen ”,已解决。

PostgreSQL添加新的服务器连接时,报错: 解决方法: 第一步:修改配置文件中连接的服务器列表,添加服务器IP地址(图pg002.png) 配置文件地址:数据库右击属性,打开数据库的安装路径在data文件中找到配置文件pg_hba.conf. 如:D:\Program Files\PostgreSQL\9.4\data\pg_hba.conf 注:只要修改IP路径就可以了,‘/’后面的数字都为32. 第二步:修改配置文件后,启动服务器的服务: 启动服务完成,连接服务器,新服务器就可以正常的

POST提交时总是报错: {&quot;errcode&quot;:40017,&quot;errmsg&quot;:&quot;invalid button type&quot;} 解决办法

开发语言:java 开发内容:微信公众号 自定义菜单 开发该连接的项目:点击打开链接 http://blog.csdn.net/blognkliming/article/details/16803093 执行MenuManage.java时报错: POST提交时总是报错:  {"errcode":40017,"errmsg":"invalid button type"} 网上找了很多资料,都没有解决问题.最后,在查看代码时发现,MenuManag

【IDEA】创建maven项目时,报错[FATAL_ERROR] Cannot start Maven: Cannot find JRE &#39;1.7&#39;

在使用IDEA使用maven创建springMVC项目时,出现下面的错误,导致无法创建生成正常的springMVC项目结构,而只有一个pom文件: [FATAL_ERROR] Cannot start Maven: Cannot find JRE '1.7' 原因是:我在默认的setting配置里,File-->Other Setting-->Default Setting对应的maven配置里,设置了runner的VM参数:-DarchetypeCatalog=internal,这里需要用到

Android编译时gradle报错乱码

问题是这样的,代码中有中文,中文是在注释中,显示的时候是完全正常的,然而编译的时候gradle会报错.提示信息其实也是乱码的. 编译时Gradle报错信息 “编码 UTF-8 的不可映射字符” 首先在设置中设置字符集, Settings->File Encodings->IDE Encodeing->UTF-8 Settings->File Encodings->Project Encodeing->UTF-8 如果这样不行的话继续往下看,如果可以了的话下面的步骤忽略就

mvc EF 数据保存时,报错:”对一个或多个实体的验证失败……“之解决

在EF5.0添加实体数据到数据库的时候,出现“对一个或多个实体的验证失败.有关详细信息,请参见“EntityValidationErrors”属性这个错误 解决: SaveChanges前先关闭验证实体有效性(ValidateOnSaveEnabled)这个开关 db.Configuration.ValidateOnSaveEnabled = false; int count = db.SaveChanges(); db.Configuration.ValidateOnSaveEnabled =

Android 开发TCP协议时,报错NetworkOnMainThreadException

设想是通过Android应用连接PC的TCP服务器,通过点击按钮连接服务器, 最终在点击按钮后报错:networkonmainthreadexception 解决办法: 在MainActivity文件的setContentView(R.layout.activity_main)下面加上如下代码 if (android.os.Build.VERSION.SDK_INT > 9) { ????StrictMode.ThreadPolicy policy = new StrictMode.Thread

ios替换app启动图片时系统报错的解决办法

ios替换app启动图片时系统报错的解决办法:我个人建议是在开发时候经常行的保存项目,并且在修改项目图标图片.app启动图片前,一定要先备份一份没有添加这两项图片的项目. 如果您的项目已经开发完成了,进入到发布前添加项目图标.app启动图片的时候,一定要确定了这两项的所有图片不会更改了再去添加,否则更改已经添加好的加项目图标.app启动图片就会报错, 如果您报错了,百度之后也没有解决办法,那么就尝试在已经备份的项目中重新去添加图片就可以了.