IDEA社区版,搭建SpringMVC开发环境遇到的问题总结
1.使用如下头文件时:
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1">
头文件报错URI is not registered ( Setting | Project Settings | Schemas and DTDs ) 以及 cant resolve http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd,将报错的连接添加到下图中
图片1.png2. Tomcat配置找不到?
在下图中搜索。若搜索无结果可点击下方的Browse Repository 进行搜索。
图片2.png
3. Tomcat怎么配置?
无论你使用smart tomcat 还是 tomcat server 配置过程都差不多。以下是基于smart tomcat的配置步骤:
3.1. 添加新的tomcat
3.2. 点击“+”号,选中smart tomcat 开始新增tomcat
3.3. 配置tomcat 使用的tomcat版本(需要先去官网下载,解压,配置环境变量)
3.4. Deplyment配置项 :需要配置到自己项目的webapp目录
3.5. Server Port: 你的程序占用的端口号,注意可能和其他程序冲突
3.6. Tomcat port 和 AJP Port ,也要注意不要和其他项目配置的这两个端口号冲突。
图片3.png4. java.lang.ClassNotFoundException: org.springframework.web.servlet.DispatcherServlet
等ClassNotFoundException问题。
解决办法一:
在webapp/WEB-INF下建立一个lib目录,把缺失的包拷贝过去
解决办法二:
新建SSM项目时,选用maven构建,并选择webapp 这个原型,它同时会帮助我们建立一些必须的目录,文件。因为时基于maven构建,所以所有依赖都由maven管理,这样我们只要确保maven管理的jar包不重复、不缺失,就不会报错ClassNotFoundException。
点击最右侧的Maven Projects【见图片5】 可以查看到所有maven管理的包:
怎么确保jar包引用不重复呢?
没有包后面提示:ommited for duplicate
怎么确保包不缺失呢?
运行项目那个包ClassNotFoundException,就在pom文件中添加依赖就好了。
图片4.png
图片5.png
5.在集成Mybatis时,报错:
Error querying database. Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is java.sql.SQLException: An attempt by a client to checkout a Connection has timed out.
The error may exist in file [C:\Lium\softwareSource\jFilm\target\classes\mapper\GirlMapper.xml]
The error may involve com.Lium.jfile.DAO.GirlMapper.getGirlById
The error occurred while executing a query
Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is java.sql.SQLException: An attempt by a client to checkout a Connection has timed out.] with root cause
The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support.
解决办法:
在数据库驱动的url后加上serverTimezone=UTC参数。例:
jdbc.url=jdbc:mysql://127.0.0.1:3307/dbgirl?useSSL=false&useUnicode=true&&characterEncoding=UTF-8&serverTimezone=UTC
6.使用map向mapper文件中传递参数时报错llegalArgumentException: No enum constant org.apache.ibatis.type.JdbcType.INT
解决办法:
这是因为mybatis的mapper中使用int类型时,声明JdbcType必须声明为INTEGER,改为
jdbcType=INTEGER,