bug: @RequestBody注解失效,服务器返回415
这个问题耽误了我相当长的时间,我已经很难受了,然而,在得知错误原因后,更是难受了。
首先,问题是这样的,我调用的jquery的ajax()方法,从前端返回json对象,希望通过@requestbody为它创建string类型的java bean对象:
这是一个415错误,于是我上网查找错误类型:不支持的媒体类型。
于是我开始修改接收参数的类型:
我把string pr 换成了productinfo pr 结果竟然还是415,
于是我开始怀疑前端是不是出了问题:
我在erro里面设置了显示错误状态码,显示的是error,我把它理解为出错:原因应该是后台程序没有返回值,在程序中加了断点debug一下,果然没有,
甚至直接跳过断点..看来连程序的入口都没进去?
由于之前一直没问题,现在又耽误了好久,这时候我开始慌了,难道是找不到这个方法吗?
url?
于是我修改了ajax的url参数,改来改去都是一个值404(),不对。
那只能是@requestbody来背这个锅了,我很诧异之前他都可以把json对象转换成string 类型的,今天就不行了?
于是我把它去掉了,
吼吼,415是没了,直接500:
而且还是第一行的问题,错误显而易见,我需要@requestbody啊!不然提取不了请求体中的内容,也就不能转换为string类型。
于是我又把他加上去了,开始直接搜索@request 415,虽然不是我的问题,但给了我重要提示:
是配置文件出了问题!
问题到此为止了,原来是我在了解@responsebody注解之前想要转换json格式数据添加的转换器bean对象,现在已经没有用了,但是我却忘了删。。。他一定对@request默认的转换器产生了影响!
至此,我明白了一个道理:当你不了解一个东西的时候,不要随随便便复制粘贴他们,而且当问题得到解决时,应该想想对你产生帮助的部分到底是哪些,而没用的代码要立即删除!
上一篇: 类的使用(类和对象,构造函数和析构函数)
下一篇: 酱油是用什么做的?为什么这么好吃?