我在 Spring Boot 中有一个带有 Tomcat 的应用程序。 我需要在我的存储库 Maven 中进行更新,之后,开始出现此错误:
线程“main”中的异常java.lang.IllegalArgumentException:无法实例化接口org.springframework.context.ApplicationContextInitializer:org.springframework.boot.devtools.restart.RestartScopeInitializer 在 org.springframework.boot.SpringApplication.createSpringFactoriesInstances(SpringApplication.java:423) 在 org.springframework.boot.SpringApplication.getSpringFactoriesInstances(SpringApplication.java:402) 在 org.springframework.boot.SpringApplication.getSpringFactoriesInstances(SpringApplication.java:393) 在 org.springframework.boot.SpringApplication.initialize(SpringApplication.java:260) 在 org.springframework.boot.SpringApplication.(SpringApplication.java:236) 在 org.springframework.boot.SpringApplication.run(SpringApplication.java:1162) 在 org.springframework.boot.SpringApplication.run(SpringApplication.java:1151) 在 br.coopercarga.com.br.SistemacolaborativoApplication.main(SistemaApplication.java:23)
引起:java.lang.UnsupportedClassVersionError:org/springframework/boot/devtools/restart/RestartScopeInitializer已由更新版本的Java运行时(类文件版本61.0)编译,此版本的Java运行时仅识别类文件版本高达 55.0 在 java.base/java.lang.ClassLoader.defineClass1(本机方法) 在 java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1017) 在 java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174) 在 java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:800) 在java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:698) 在java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:621) 在 java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:579) 在 java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178) 在 java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522) 在 org.springframework.util.ClassUtils.forName(ClassUtils.java:250) 在org.springframework.boot.SpringApplication.createSpringFactoriesInstances(SpringApplication.java:415) ...还有7个
我的java版本:
项目结构:
我的运行配置:
我的pom.xml(maven)
<groupId>br.xxx.com.br</groupId>
<artifactId>sistemacolaborativo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.13.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>3.1.0</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<version>3.1.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
<version>3.0.4</version>
</dependency>
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc</artifactId>
<version>12.2.0.jre8</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
<version>3.0.4</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<version>3.0.4</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt</artifactId>
<version>0.9.1</version>
</dependency>
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-catalina-jmx-remote</artifactId>
<version>8.5.75</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>net.sf.jasperreports</groupId>
<artifactId>jasperreports</artifactId>
<version>6.20.1</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
<version>3.0.4</version>
<!--<version>2.0.0.M6</version>-->
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>5.2.2</version>
</dependency>
<dependency>
<groupId>net.sourceforge.jexcelapi</groupId>
<artifactId>jxl</artifactId>
<version>2.6.12</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-web</artifactId>
<version>6.1.0</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-config</artifactId>
<version>6.0.2</version>
</dependency>
<dependency>
<groupId>br.coopercarga.com.br</groupId>
<artifactId>sistemacolaborativo</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot</artifactId>
<version>2.1.0.RELEASE</version>
</dependency>
<dependency>
<groupId>javax.transaction</groupId>
<artifactId>javax.transaction-api</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>org.hibernate.javax.persistence</groupId>
<artifactId>hibernate-jpa-2.0-api</artifactId>
<version>1.0.1.Final</version>
</dependency>
<dependency>
<groupId>dom4j</groupId>
<artifactId>dom4j</artifactId>
<version>1.6.1</version>
</dependency>
<dependency>
<groupId>com.sun.mail</groupId>
<artifactId>javax.mail</artifactId>
<version>1.5.6</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot</artifactId>
<version>1.5.3.RELEASE</version>
</dependency>
<dependency>
<groupId>org.jetbrains</groupId>
<artifactId>annotations</artifactId>
<version>13.0</version>
</dependency>
</dependencies>
我的SistemaApplication.java
import br.xxxxx.com.br.TokenFilter.TokenFilter;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.context.annotation.Bean;
@SpringBootApplication
public class SistemaApplication {
@Bean
public FilterRegistrationBean getFilterJWT() {
FilterRegistrationBean frb = new FilterRegistrationBean();
frb.setFilter(new TokenFilter());
frb.addUrlPatterns("/#/*");
return frb;
}
public static void main(String[] args) {
SpringApplication.run(SistemaApplication.class, args);
}
}
我已经尝试过更新 Java 并重新配置我的项目,但没有成功,我进行了多次搜索,但没有解决方案有效,因此我将不胜感激。
您的父级是 Springboot 2.x,但随后您添加了 Springboot 3 依赖项,这需要 Java 17 https://spring.io/blog/2022/05/24/preparing-for-spring-boot-3-0