今日做练习,发现错误Incorrect result size: expected 1, actual 0
这句话的意思是它要一个为1的结果,但是我给它的是0
在论坛找答案,有说不能使用queryForObject方法的,有说queryForObject使用后结果需要强转的,有说DataAccessException需要用Exception的,还有说sql语句不对的
我下载了课程老师的资料一一比对,发现并没有什么不一样的地方
然后我一一回溯,发现假若我使用自己传的junit测试,是可以拿的到数据库查询结果的
那就是使用前端返回来的数据查询这里出了问题
于是我检查了html页面,没有问题
在论坛里找大佬的解决方法,还是没有解决
在我想要放弃的时候,在观看第n次视频的我发现了一个细节——Tomcat配置
因为我懒,这里的Application context我将它设置为了/
然后login.html中form标签的action属性我写的是action="/loginServlet",继承HttpServlet的类注解写的是@WebServlet("/loginServlet")
但我看老师并不是这样写的,他将Application context修改为了/xxx,action="/xxx/loginServlet",@WebServlet("/loginServlet")
我就抱着尝试的态度改了一下…
查询数据库成功返回数据了。
今天又碰到了Incorrect result size: expected 1, actual 0,但上次的方法并未解决此次问题
经检查代码无误,路径名书写也正确,那问题出在哪里了呢
经过上一次来看,说明配置也是有一定关系的,可能会因一些未说明过的配置没有合乎规范而导致 Incorrect result size: expected 1, actual 0 报错
一一排查后发现:若tomcat的端口设置未8080(默认都是8080),那么就会报此错误
因为之前80端口是被World Wide Web服务占用了,将其停掉后将Tomcat的端口设置回80
数据库返回信息正确了,可这是为啥呢…?
希望有知道的大佬看到能够给小弟说明一下