Spring Boot项目jdk9运行报错,怎么处理都不行

jdk9与jdk8相比有很大的区别

  • JDK8:JDK8的部署是一个单体模式,即使项目内容少,也需要一整套的JRE环境。
  • JDK9:JDK9引入模块后,能将所有的类组织成模块形式。在新建项目时,不再需要整套的JRE环境。

并且jdk9在发布的时候有一些JDK8中的jar依赖没有集成进去,因此在使用一些版本的Spring Boot项目的时候就会报一些jar包缺失的错误。

org.springframework.context.ApplicationContextException: 
Unable to start embedded container; nested exception is org.springframework.beans.factory.BeanCreationException:
 Error creating bean with name 'tomcatEmbeddedServletContainerFactory' defined in class path resource 
[org/springframework/boot/autoconfigure/web/EmbeddedServletContainerAutoConfiguration$EmbeddedTomcat.class]: 
Initialization of bean failed; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'org.springframework.boot.autoconfigure.web.HttpEncodingAutoConfiguration': 
Unsatisfied dependency expressed through constructor parameter 0: Error creating bean with name 
'spring.http.encoding-org.springframework.boot.autoconfigure.web.HttpEncodingProperties': Initialization of bean
 failed; nested exception is java.lang.NoClassDefFoundError: javax/xml/bind/ValidationException; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'spring.http.encoding-
 org.springframework.boot.autoconfigure.web.HttpEncodingProperties': Initialization of bean failed; nested exception is 
 java.lang.NoClassDefFoundError: javax/xml/bind/ValidationException

根本的原因就是jdk9的jar包的缺失。

解决方法

在项目的pom.xml文件中引入缺失的jar包:

<!-- jdk9 缺失的jar包 -->
<dependency>
    <groupId>javax.xml.bind</groupId>
    <artifactId>jaxb-api</artifactId>
    <version>2.3.0</version>
</dependency>
<dependency>
    <groupId>com.sun.xml.bind</groupId>
    <artifactId>jaxb-impl</artifactId>
    <version>2.3.0</version>
</dependency>
<dependency>
    <groupId>com.sun.xml.bind</groupId>
    <artifactId>jaxb-core</artifactId>
    <version>2.3.0</version>
</dependency>
<dependency>
    <groupId>javax.activation</groupId>
    <artifactId>activation</artifactId>
    <version>1.1.1</version>
</dependency>

然后重新启动项目!!

2022-02-22 12:44:29.375  INFO 12020 --- [           main] .s.d.r.c.RepositoryConfigurationDelegate : Multiple Spring Data modules found, entering strict repository configuration mode!
2022-02-22 12:44:29.375  INFO 12020 --- [           main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data Redis repositories in DEFAULT mode.
2022-02-22 12:44:29.423  INFO 12020 --- [           main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 27ms. Found 0 Redis repository interfaces.
2022-02-22 12:44:29.995  INFO 12020 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 8082 (http)
2022-02-22 12:44:30.012  INFO 12020 --- [           main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
2022-02-22 12:44:30.012  INFO 12020 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet engine: [Apache Tomcat/9.0.35]

启动成功!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据提供的引用内容,我们可以得出以下结论: 在引用\[1\]中,报错信息显示未指定spring-boot-maven-plugin的版本。在引用\[2\]中,报错信息显示spring-boot-maven-plugin的版本为3.0.0,但由于Java运行时的版本不兼容,导致加载插件失败。引用\[3\]提到spring-boot-maven-plugin是用于提供Spring Boot的Maven打包支持的插件。 根据提供的信息,我们无法确定spring-boot-maven-plugin是否支持JDK 1.7版本。然而,根据引用\[2\]中的错误信息,该插件至少需要Java运行时版本为52.0(对应Java 8)才能正常工作。因此,可以推断出spring-boot-maven-plugin不支持JDK 1.7版本。 综上所述,spring-boot-maven-plugin不支持JDK 1.7版本。如果您想使用该插件,您需要升级到JDK 1.8或更高版本。 #### 引用[.reference_title] - *1* [spring-boot-maven-plugin 3.0 版本打包失败](https://blog.csdn.net/xieqj_0511/article/details/128100166)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [spring-boot-maven-plugin未指定版本导致install 错误-spring-boot-maven-plugin:3.0.0](https://blog.csdn.net/qq_26898033/article/details/128369414)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [SpringBoot 插件 spring-boot-maven-plugin 原理,以及SpringBoo工程部署的 jar 包瘦身实战](https://blog.csdn.net/agonie201218/article/details/130842233)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值