Springboot&服务器:常见错误及解决方案


1、Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection

学习自:Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection_南淮北安的博客-CSDN博客

原因:MySQL8要求必须设置时区

解决:在.properties配置文件中的数据库URL中,加上时区,构成如下格式:

jdbc:mysql://主机名:3306/数据库名?serverTimezone=UTC

 

2、JPS INCREMENTAL ANNOTATION PROCESSING IS DISABLED

学习自:java: JPS incremental annotation processing is disabled. Compilation results on partial recompilatio_Final磊的博客-CSDN博客

最终解决方法:

把lombok的版本由1.16.12改为1.16.20

 

3、Unable to make field private com.sun.tools.javac.processing.JavacProcessingEnvironment

原因:JDK版本太高了,降低JDK版本即可

解决报错Unable to make field private-程序员宝宝

 

4、部署到服务器后,访问页面出现Error resolving template [], template might not exist or……

解决方法

把controller类中return的网页最前的斜杠’/’删除,像下边这样,修改前是return “/index”,修改后是return “index”

修改前

Springboot&服务器:常见错误及解决方案

修改后

 Springboot&服务器:常见错误及解决方案

但是重定向还是要加上斜杠/:

Springboot&服务器:常见错误及解决方案

 

5、Exception in thread “main“ java.lang.UnsupportedClassVersionError

原因

根本原因:用高版本JDK编译的程序,运行在了低版本的JVM上。

解决方法

①先检查当前计算机中的Java版本,看看二者是否一致:

Springboot&服务器:常见错误及解决方案

如果一致,则可以确认是编译器原因,因为编译器在编译时使用的自带javac,而非系统javac

②修改编译器所用jdk(以IDEA为例)

IDEA在项目编译时,有4个地方涉及到了JDK,如果不知道修改哪个,可以都试试:

1)Edit Configuration → 修改Build and run中的JDK版本

Springboot&服务器:常见错误及解决方案

 

 

Springboot&服务器:常见错误及解决方案

 

 

2)File → Project Structure → Project → SDK

Springboot&服务器:常见错误及解决方案

 

 

3)File → Project Structure → Module → Sources → Language Level

Springboot&服务器:常见错误及解决方案

3)File → Project Structure → Module → Dependencies → Module SDK

Springboot&服务器:常见错误及解决方案

 

 

4)pom.xml文件中,用如下代码标注jdk版本

    <properties>
        <java.version>1.8</java.version>
    </properties>

后续

1)如果还没有解决,请检查main方法所在的java类,是否忘记了注解@EnableAutoConfiguration

2)如何查看IDEA自带的jdk版本?

Project Structure → SDKs

Springboot&服务器:常见错误及解决方案

 

 

6、Error:java: 警告: 源发行版 X 需要目标发行版 X

原因

发行版本的JDK与源版本JDK版本不一致

解决

源版本的设置:File → Project Structure → Sources → Language Level

Springboot&服务器:常见错误及解决方案

File → Project Structure → Dependencies → Module SDK

Springboot&服务器:常见错误及解决方案

 

 

目标版本的设置:File → Setting → Build,Execution,Deplyment → Compiler → Java Compiler → Targer bytecode version

也可以直接从如下入口进入

Springboot&服务器:常见错误及解决方案

 

 

 

Springboot&服务器:常见错误及解决方案

 

 

后续

如果以上设置好了还是不行,就需要去pom.xml文件中,看看是不是忘记了设置java版本,如下:

    <properties>
        <java.version>1.8</java.version>
    </properties>

记得要和jdk版本匹配,或者删除不用,因为这配置也只是建议项不是必须设置的

 

7、java: 无效的目标发行版: 11

原因

发行版本为jdk11,但是编译时却采用了更低版本的jdk(比如jdk8),导致无法使用更高版本的功能

解决

问题本质和问题5一样,可以去看问题5的解决方法

 

8、has been compiled by a more recent version of the Java Runtime (class file version 56.0),this version of the Java Runtime only recognizes class file versions up to 52.0

原因

当前JDK为52.0,而编译JDK为56.0,这里的数字与JDK版本的对应关系为:

49 = Java 5
50 = Java 6
51 = Java 7
52 = Java 8
53 = Java 9
54 = Java 10
55 = Java 11
56 = Java 12
57 = Java 13
58 = Java 14

解决

问题本质和问题5一样,可以去看问题5的解决方法

 

8、Cause: java.sql.SQLSyntaxErrorException: Unknown column ‘name‘ in ‘field’

原因

mapper.xml文件中的问题,极大可能是SQL语句的问题

解决

请检查SQL语句中的查询列名是否与数据库中的列名一致,通常发生在用了不同数据库但没改SQL语句的情况下(比如用了某个服务器上的数据库,但是SQL语句还是针对本机数据库)。

 

9、java: java.lang.IllegalAccessError: class lombok.javac.apt.LombokProcessor (in unnamed module @0x7f85739c) cannot access class com.sun.tools.javac.processing.JavacProcessingEnvironment (in module jdk.compiler) because module jdk.compiler does not export com.sun.tools.javac.processing to unnamed module @0x7f85739c

原因

lombok版本过低

解决

在pom.xml中升级lombok的版本至1.18.20

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.20</version>
        </dependency>

 

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/273607.html

(0)
上一篇 2022年7月11日
下一篇 2022年7月11日

相关推荐

发表回复

登录后才能评论