Caused by: java.lang.ClassNotFoundException: org.springframework.context.ApplicationContext

由于war包在构建时未包含spring-mvc模块的依赖,导致Tomcat在启动时找不到org.springframework.context.ApplicationContext类,从而引发错误。解决方法是在项目的Artifacts配置中确保依赖被添加到WEB-INF/lib目录下,这样启动Tomcat时就能正常加载所需类。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Caused by: java.lang.ClassNotFoundException: org.springframework.context.ApplicationContext

	java.lang.IllegalStateException: Error starting child
		at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:720)
		at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:690)
		at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:705)
		at java.base/java.lang.reflect.Method.invoke(Method.java:566)
		at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:289)
		at java.management/com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:809)
		at java.management/com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)
	Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/itheima_spring_mvc]]
		at org.apache.catalina.util.LifecycleBase.handleSubClassException(LifecycleBase.java:440)
		at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:198)
		at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:717)
		... 42 more
	Caused by: java.lang.NoClassDefFoundError: org/springframework/context/ApplicationContext
		at java.base/java.lang.Class.getDeclaredFields0(Native Method)
		at java.base/java.lang.Class.privateGetDeclaredFields(Class.java:3062)
		at java.base/java.lang.Class.getDeclaredFields(Class.java:2249)
		at org.apache.catalina.util.Introspection.getDeclaredFields(Introspection.java:110)
		at org.apache.catalina.startup.WebAnnotationSet.loadFieldsAnnotation(WebAnnotationSet.java:269)
		at org.apache.catalina.startup.WebAnnotationSet.loadApplicationServletAnnotations(WebAnnotationSet.java:137)
		Caused by: java.lang.ClassNotFoundException: org.springframework.context.ApplicationContext
		at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1365)
		at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1188)
		... 56 more
严重 [RMI TCP Connection(3)-127.0.0.1] org.apache.tomcat.util.modeler.BaseModelMBean.invoke Exception invoking method [createStandardContext]
	javax.management.RuntimeOperationsException: Exception invoking method [manageApp]
		at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:298)
		at java.management/com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:809)
		at java.management/com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)
		at org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:456)
		at org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:405)
		at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
		at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	Caused by: java.lang.IllegalStateException: Error starting child
		at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:720)
		at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:690)
		at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:705)
	Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/itheima_spring_mvc]]
		at org.apache.catalina.util.LifecycleBase.handleSubClassException(LifecycleBase.java:440)
		at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:198)
		at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:717)
		... 42 more
	Caused by: java.lang.NoClassDefFoundError: org/springframework/context/ApplicationContext
		at java.base/java.lang.Class.getDeclaredFields0(Native Method)
		at java.base/java.lang.Class.privateGetDeclaredFields(Class.java:3062)
		at java.base/java.lang.Class.getDeclaredFields(Class.java:2249)
		at org.apache.catalina.util.Introspection.getDeclaredFields(Introspection.java:110)
		at org.apache.catalina.startup.WebAnnotationSet.loadFieldsAnnotation(WebAnnotationSet.java:269)
		at org.apache.catalina.startup.WebAnnotationSet.loadApplicationServletAnnotations(WebAnnotationSet.java:137)
		at org.apache.catalina.startup.WebAnnotationSet.loadApplicationAnnotations(WebAnnotationSet.java:69)
		at org.apache.catalina.startup.ContextConfig.applicationAnnotationsConfig(ContextConfig.java:330)
	Caused by: java.lang.ClassNotFoundException: org.springframework.context.ApplicationContext
		at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1365)
		at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1188)
		... 56 more

原因

  • war包这个artifact在找其依赖时默认在WEB-INF目录下 的lib目录中找。生成spring_mvc_web_exploded这个war包时没有把spring-mvc模块的依赖加入到war包的lib目录中,导致tomcat启动后找不到相关的类,无法正常启动。

解决方法

  • 点击FIle,找到Project Structure
    在这里插入图片描述
  • 然后找到Artifacts,我们此时可以看见右边我们编写的项目
    在这里插入图片描述
  • 右击我们想要部署的web项目,点击Put into Output Root
    在这里插入图片描述
  • 可见左边的< output root >中的WEB-INF目录下多了lib目录,打开可见其中添加了spring-mvc模块的依赖。此时再启动tomcat则可正常启动。
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值