部署maven项目问题

本文详细介绍了如何通过调整MavenDependencies配置来解决在部署项目到容器时遇到的NoClassDefFoundError错误。通过右键项目、Properties、DeploymentAssembly操作,添加缺失的MavenDependencies项,即可解决类定义未找到的问题。总结了MavenDependencies在项目部署中的重要性,并强调了确保所有依赖库放置在WEB-INF/lib目录的重要性。

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

  1. 由于原来项目与本地项目的环境不一致问题,误将Maven Dependencies 删除,重新update项目后未将jar导入tomcat,部署报错: 

Caused by: java.lang.NoClassDefFoundError: Lorg/apache/log4j/Logger;
	at java.lang.Class.getDeclaredFields0(Native Method)
	at java.lang.Class.privateGetDeclaredFields(Class.java:2436)
	at java.lang.Class.getDeclaredFields(Class.java:1806)
	at org.apache.catalina.util.Introspection.getDeclaredFields(Introspection.java:106)
	at org.apache.catalina.startup.WebAnnotationSet.loadFieldsAnnotation(WebAnnotationSet.java:256)
	at org.apache.catalina.startup.WebAnnotationSet.loadApplicationFilterAnnotations(WebAnnotationSet.java:105)
	at org.apache.catalina.startup.WebAnnotationSet.loadApplicationAnnotations(WebAnnotationSet.java:64)
	at org.apache.catalina.startup.ContextConfig.applicationAnnotationsConfig(ContextConfig.java:334)
	at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:774)
	at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:305)
	at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:95)
	at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
	at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5080)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
	... 10 more
Caused by: java.lang.ClassNotFoundException: org.apache.log4j.Logger
	at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1333)
	at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1167)
	... 24 more

解决方法如下:

  1. 右键项目,properties,Deployment Assembly:

    144841_NVbI_2245926.png

  2. 发现没有Maven Dependencies项,点击Add,出现如下界:

    145205_ox2f_2245926.png

  3. 点击Java Build Path Entris 会出现Maven Dependencies选项,添加进来即可。

  4. 再次运行项目,问题解决。

总结:Maven Dependencies里面包含整个项目所需的jar包,部署到容器中时,必须将这些包,放到WEB-INF/lib 目录下。

转载于:https://my.oschina.net/u/2245926/blog/514802

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值