1.问题:访问出现404
排查步骤:
- 查看控制台输出,看一下是不是缺少了什么jar包。
- 如果jar包存在,显示无法输出,就在IDEA的项目发布中,添加lib依赖!
- 重启Tomcat 即可解决
- 在运行一个jsp项目时,idea报错:源服务器未能找到目标资源的表示或者是不愿公开一个已经存在的资源表示。
原因:注意jsp或html等文件是直属于Webcontent,与【META-INF】【WEB-INF】平级,不要将jsp文件放置到【WEB-INF】下面,WEB-INF是Java的WEB应用的安全目录。所谓安全就是客户端无法访问,只有服务端可以访问的目录。所以会引起404错误。
3.form表单提交出现404报错
需要在form的action路径中添加${pageContext.request.contextPath}
**
4.使用lombok的@AllArgsConstructor报错:Expected 0 arguments but found 3
(1)、当你的IDE是Idea时,要注意你的Idea是支持Lombok的,如果不支持请更换2017版本尝试。
(2)、在使用Lombok时,你的编辑器可能会报错,这时请在你的IDE中安装Lombok插件(如果使用的Idea则直接搜索Lombok插件,选择星级最高的,直接安装就是,其他Ide类同)。
(3)、参数的处理往往都是根据项目需求来进行,请妥善处理参数。
(4)、如果你无法访问Lombok官网,你可以从这篇博文中将Maven坐标照着自己打进去,或者你也可以访问Maven的中央仓库搜索Lombok,将Maven坐标复制进去即可。
5.报错:java.lang.IllegalStateException: Failed to introspect Class [com.example.controller.UserController] from ClassLoader [ParallelWebappClassLoader
原因:此异常原因是因为classA中使用了项目没有导入的类,从而导致类加载失败。一般来说如果使用了没有依赖的类应该会报ClassNotFindException的错误,但是如果只是导入却没有使用的使用可能就会报此错误。
通常此错误见与使用maven框架配置了第三方类的scope是provided的情况下。笔者在使用spring boot、maven时导致此错误。
解决办法;检查classA类中可能存在的没有依赖的类或者包,将之导入(或者加入maven依赖、或调整依赖的包中的依赖的scope),总之使其类加载器能够在当期classPath找到此类即可。
6.json数据返回乱码
出现了乱码问题,我们需要设置一下他的编码格式为utf-8,以及它返回的类型;
通过@RequestMaping的produces属性来实现,修改下代码
//produces:指定响应体返回类型和编码
@RequestMapping(value = "/json1",produces = "application/json;charset=utf-8")
也可以通过修改配置文件,添加如下代码来修改编码
<mvc:annotation-driven>
<mvc:message-converters>
<bean class="org.springframework.http.converter.StringHttpMessageConverter">
<constructor-arg ref="utf8Charset"/>
</bean>
</mvc:message-converters>
</mvc:annotation-driven>
7.报错:Element ‘dependency’ cannot have character [children], because the type’s content type is element-only.
报错原因:因为是直接从网上拷贝过来粘贴在pom.xml中的可能格式会有冲突
解决方案:把前面的空格删掉重新排版即可
8.org.springframework.core.NestedIOException: Failed to parse config resource: class path resource [mybatis-config.xml]; nested exception is org.apache.ibatis.builder.BuilderException: Error parsing SQL Mapper Configuration. Cause: org.apache.ibatis.builder.BuilderException: Error creating document instance. Cause: org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 54; 文档根元素 “mapper” 必须匹配 DOCTYPE 根 “null”。
解决:缺少头文件,需要添加
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.test.mapper.TestMapper">
9.SSM整合时IDE: File is included in 4 contexts
问题所在:spring-dao.xml,spring-service.xml,spring-mvc.xml没有放在同一个上下文中,spring-service.xml中dataSource引入失败(dataSource在spring-dao.xml中已经配置完成)
所谓File is included in 4 contexts是因为spring的配置文件放在了多个上下文中,只需找到以上位置,然后保留一个spring的上下文就OK了。
10.Tomcat启动报错:一个或多个筛选器启动失败。由于之前的错误,Context[]启动失败
在Maven工程中,IDEA没有把项目依赖包部署到web项目,需要手动导入包。
11.lombok无法提示set和get
解决方法:
第一步: pom.xml中加入lombok依赖包
第二步:加入lombok插件。
步骤:File ——》Settings——》Plugins. 搜索lombok,点击安装install。然后会提示重启,重启后即可。
13.org.apache.ibatis.binding.BindingException: Invalid bound statement (not found):
即在mybatis中dao接口与mapper配置文件在做映射绑定的时候出现问题,简单说,就是接口与xml要么是找不到,要么是找到了却匹配不到。
截图为网络中搜索到的常见原因:
14.报错415:org.springframework.web.servlet.handler.AbstractHandlerExceptionResolver.logException Resolved [org.springframework.web.HttpMediaTypeNotSupportedException: Content type ‘application/json;charset=UTF-8’ not supported]
解决方法:加入依赖
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.8</version>
</dependency>
15.IDEA部署Module到tomcat时在Deployment中添加Artifact中找不到该Module的解决方案
解决方案:以此点击菜单:File->Project Structure
然后选择左侧的【Modules】标签,然后在选中中间要部署的Module点鼠标右键,依次点击菜单:Add->Web。
完成后就可以重新进入tomcat中的Deployment中添加artifact,就可以看到该Module了。
16.报错:Optional int parameter ‘id’ is present but cannot be translated into a null value due to being declared as a primitive type. Consider declaring it as object wrapper for the corresponding primitive type.
解决:意思是id不能转换为空,后面也给出了修改的建议:可以用包装类Integer来避免这个错误
在springmvc接受参数的时候,尽量不要使用基本数据类型
17.报错415:源服务器拒绝服务请求,因为有效负载的格式在目标资源上此方法不支持。
表单在提交后,到达 action 指向的页面,传值{name: value}