org.apache.tomcat.util.modeler.BaseModelMBean.invoke 调用方法[manageApp]时发生异常

在学习springmvc中,报出异常:

异常有用信息如下:

java.lang.IllegalStateException: 启动子级时出错
        at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:729)
        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:698)
      ......

Caused by: org.apache.catalina.LifecycleException: 无法启动组件[StandardEngine[Catalina].StandardHost[localhost].StandardContext[/springmvc]]
        at org.apache.catalina.util.LifecycleBase.handleSubClassException(LifecycleBase.java:440)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:198)

......

Caused by: java.lang.UnsupportedClassVersionError: org/springframework/web/SpringServletContainerInitializer has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up to 52.0 (无法载入的类 [org.springframework.web.SpringServletContainerInitializer])
        at org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.java:2521)
 

可以看到报错信息是:代码编译是由java 61.0版本(对应jdk 17)进行编译的

而运行时却运行在java 52.0版本上,

下面介绍一下跟jdk有关的配置,因为这是springmvc的项目,所以idea中有三个地方可以设置jdk:

1.[setting]-[compiler] 中的设置

其中

project bytecode version是设置jdk 运行时版本

per-moudle bytecode version 是设置jdk 编译时版本(ide其他版本可能叫Project compiler output)

 2.[project structure]-[modules]中的设置

其中

moudule sdk 是设置jdk编译版本

3. [edit configurations...] JRE版本

这里设置的是tomcat运行时版本

springmvc是运行在tomcat版本的服务上,所以要吧3改jre改成17

注意:

1.[project structure]中配置是高于[setting]的

2.在当前场景下改setting中的jdk运行时版本没有用,是因为此项目是跑在tomcat 中,若是springboot项目那可能会有用

  • 8
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值