学习编程过程中遇到的问题,以及解决⽅法(持续更新)
(1)类加载异常 : 提⽰ClassNotFoundException 后边跟⾃⼰写的包名类名
(2)提⽰ IllegalAccessException ⾮法访问异常
(3)CMD 提⽰编码GBK 的不可映射字符
(4)严重: testWhileIdle is true, validationQuery not set 使⽤Druid 连接池报错处理
声明;使⽤的JDK9, MYSQL8版本数据库,1.0.9Druid的jar包;
使⽤druid-1.0.9.jar ,报错如下;
这两⾏报错,是因为没有SpringBoot框架xml配置,在不使⽤框架的情况下;怎么解决呢;
①先解决第⼀⾏报错;严重: testWhileIdle is true, validationQuery not set 原来properties⽂件配置如下;
在properties配置⽂件下添加⼀些配置;
附上⼀些名词解释;//提⽰这样的错误 , 可能是你的包名写错了Exception in thread "main" java .lang .ClassNotFoundException : com .siche .javaweb .domain .Person
1
2//提⽰这样的错误 , 是 ⾮法的访问异常Exception in thread "main" java .lang .IllegalAccessException : class  com .sichen .javaweb .Persontest cannot access a member of class  com .sichen .javaweb //需要设置 暴⼒反射
1
2
3解决办法:⽅法⼀:带上编码utf -8,运⾏命令:javac -encoding utf -8 HelloWorld .java ,结果,同⽬录下出现HelloWorld .class ⽂件,编译成功!⽅法⼆:⽤记事本另存为ANSII 编码格式的,直接运⾏命令:javac HelloWorld .java 出现对应的class ⽂件,成功!
1
2
3
4
5
6
7
8
9driverClassName = sql.cj.jdbc.Driver url = jdbc:mysql://localhost:3306/test?serverTimezone=UTC&characterEncoding=utf-8&useSSL=false username = root password = root
1
2
3
xml文件怎么打开4filters=stat initialSize=2maxActive=300maxWait=60000timeBetweenEvictionRunsMillis=60000minEvictableIdleTimeMillis=300000validationQuery=SELECT 1testWhileIdle=true testOnBorrow=false testOnReturn=false poolPreparedStatements=false maxPoolPreparedStatementPerConnectionSize=200
1
2
3
4
5
6
7
8
9
10
11
12
(5)使⽤xml ⽂件出现
error on line 24 at column 9: Extra content at the end of the document 问题原因 : 未解决 (可能是和编码有关的问题)
(6)tomcat 服务器出现java.lang.NoClassDefFoundError:
org/springframework/dao/DataAccessException
出现这个原因是因为WEB-INF⽬录下的lib中没有放jar包导致的
在使⽤maven导⼊jar包后,在项⽬结构中 选择Artifacts , 选择⼯件 , 如图所⽰ , 将依赖导⼊到lib⽬录下 , 刷新即可 ,validationQuery = "SELECT 1"  #验证连接是否可⽤,使⽤的SQL 语句testWhileIdle = "true"      #指明连接是否被空闲连接回收器(如果有)进⾏检验.如果检测失败,则连接将被从池中去除.testOnBorrow = "false"  #借出连接时不要测试,否则很影响性能timeBetweenEvictionRunsMillis = "30000"  #每30秒运⾏⼀次空闲连接回收器minEvictableIdleTimeMillis = "1800000"  #池中的连接空闲30分钟后被回收,默认值就是30分钟。numTestsPerEvictionRun="3" #在每次空闲连接回收器线程(如果有)运⾏时检查的连接数量,默认值就是3.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
1617解释:配置timeBetweenEvictionRunsMillis = "30000"后,每30秒运⾏⼀次空闲连接回收器(独⽴线程)。并每次检查3个连接,如果连接空闲时间超过30分钟就销毁。testWhileIdle = "true" 表⽰每30秒,取出3条连接,使⽤validationQuery = "SELECT 1" 中的SQL 进⾏测试 ,测试不成功就销毁连接。销毁连接后,连接数量就少testOnBorrow = "false" ⼀定要配置,因为它的默认值是true 。false 表⽰每次从连接池中取出连接时,不需要执⾏validationQuery = "SELECT 1" 中的SQL 进⾏测每30秒,取出numTestsPerEvictionRun 条连接(本例是3,也是默认值),发出"SELECT 1" SQL 语句进⾏测试 ,测试过的连接不算是“被使⽤”了,还算是空闲
1
2
3
4
5
6
7
8
9
(7)数据库5之后 , 出现问题 , 在url 后边加⼀句 (在配置⽂件中也是如此
)
(8)项⽬中⽆法快速创建Servlet 类
打开项⽬结构 --> Facets -->
在你想创建servlet的⽬录前勾选上
注意 : 如果没有这个选项 , 先看看是不是⽂件类型没有标记? 去设置⼀下就可以了
这就是创建之后的servlet serverTimezone=UTC
1
(9)Tomcat服务器关闭之后 , 不⽣成SESSIONS.ser⽂件
打开Tomcat服务器根⽬录下的 conf⽂件夹
到l⽂件 打开
将这⾏的代码复制出来 保存即可
(10)maven导⼊JSTL依赖出现异常
(1)类转换异常 : 未能加载或实例化TagLibraryValidator类
org.apache.jasper.JasperException: 未能加载或实例化TagLibraryValidator类:[org.apache.taglibs.standard.tlv.JstlCoreTLV]原因 :
没有导⼊依赖 standard jar 包导致的
完整的依赖是 (⽼版本 , javax包下的)
新版本 : (jakarta包下的)只⽤导⼊⼀个就可以了
(2)如果出现 <%@taglib prefix=“c” uri=“java.sun/jsp/jstl/core” %> 爆红的概况
可能是因为没有导⼊standard包的相关依赖导致的
(3)java.lang.NoClassDefFoundError: (类定义未到异常)javax/servlet/jsp/tagext/TagLibraryValidator 出现错误主要就是jar没有导完全 ,
使⽤jstl所需要的jar共有 :<!-- mvnrepository/artifact/javax.servlet.jsp.jstl/jstl -->    <dependency >      <groupId >javax.servlet.jsp.jstl </groupId >      <artifactId >jstl </artifactId >      <version >1.2</version >    </dependency >    <!-- mvnrepository/artifact/taglibs/standard -->    <dependency >      <groupId >taglibs </groupId >      <artifactId >standard </artifactId >      <version >1.1.2</version >    </dependency >    <!-- mvnrepository/artifact/javax.servlet.jsp.jstl/jstl-api -->    <dependency >      <groupId >javax.servlet.jsp.jstl </groupId >      <artifactId >jstl-api </artifactId >      <version >1.2</version >    </
dependency >    <!-- mvnrepository/artifact/org.glassfish.web/jstl-impl -->    <dependency >      <groupId >org.glassfish.web </groupId >      <artifactId >jstl-impl </artifactId >      <version >1.2</version >      <scope >runtime </scope >    </dependency >
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25<!-- jstl-api --><dependency >        <groupId >jakarta.servlet.jsp.jstl </groupId >        <artifactId >jakarta.servlet.jsp.jstl-api </artifactId >        <version >2.0.0</version ></dependency >
1
2
3
4
5
6<dependency >    <groupId >org.apache.taglibs </groupId >    <artifactId >taglibs-standard-impl </artifactId >    <version >1.2.5</version >    <scope >runtime </scope ></dependency ><dependency >    <groupId >org.apache.taglibs </groupId >    <artifactId >taglibs-standard-spec </artifactId >    <version >1.2.5</version ></dependency >
1
2
3
4
5
6
7
8
9
10
11