#访问页面时候出现:HTTP Status 500 servlet.init() for servlet DispatcherServlet threw exception
…
解决方案:
检测tomcat启动是否OK?
假如启动OK,则清浏览器缓存,假如启动失败要检测哪里代码
出现了问题(例如数据库连接被拒绝了,假如出现
ClassNotFoundException)
#org.apache.ibatis.binding.BindingException:
Invalid bound statement (not found):
cn.tedu.ttms.product.dao.ProjectDao.findObjects
at org.apache.ibatis.binding.MapperMethod$SqlCommand.(MapperMethod.java:189)
at org.apache.ibatis.binding.MapperMethod.(MapperMethod.java:43)
at org.apache.ibatis.binding.MapperProxy.cachedMapperMethod(MapperProxy.java:58)
at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:51)
解决方案:
检查DAO对象与MAPPER文件的关联,绑定是否一致?
1)mapper中的命名空间应与dao接口的类全名一致.
2)mapper中定义的元素id与dao接口中的方法一致.
#访问页面时出现404错误?
1)首先检测tomcat启动是否ok
2)其次检测访问路径对应的资源是否存在
#java.lang.NullPointerExceptionat cn.tedu.ttms.product.controller.ProjectController.doGetObjects(ProjectController.java:27)
解决方案:
1)首先将目标定位的ProjectController.java:的27行
2)其次定位点"."左边的对象值是否注入了
3)假如此值已注入进入方法内部继续检测.
#org.apache.ibatis.binding.BindingException: Parameter ‘startIndex’ not found. Available parameters are [0, 1, param1, param2]at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:165)
解决方案:
检测dao的方法中对应参数有没有使用@Param修饰.
DAO中什么情况下使用@Param注解定义参数?
当方法中参数个数大于1时(等于1时也可以使用此注解进行
参数定义).
#java.lang.IllegalArgumentException: Result Maps collection does not contain value for cn.tedu.ttms.product.entity.Project
解决方案:
检测mapper文件中对应的select语句的returnType是否写成了
resultMap.
#Failed to load resource: the server responded with a status of 400 (Bad Request)
客户端出现的400错误表示客户端向服务端传输的
数据被拒绝接收(问题一般出现在数据格式上)
#当系统出现406错误时,表示请求的资源的内容特性无法满足
请求头中的条件,因而无法生成响应实体。
在我们的项目中可能是使用了@ResponseBody注解,但是
相关的第三方API(例如jackson)导入不完整.