java - log4j2 在servlet3.1下报错NoClassDefFoundError
问题描述
我的maven配置
<dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-web</artifactId> <version>2.8.1</version> <scope>compile</scope></dependency><dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-api</artifactId> <version>2.8.1</version> <scope>compile</scope></dependency><dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <version>2.8.1</version> <scope>compile</scope></dependency>
然后我在main函数中调用一切正常
public class Test { private static final Logger LOGGER = LogManager.getLogger(Test.class); public static void main(String[] args) {LOGGER.error('cuo wu'); }}
但是在servlet中使用就会报错
@WebServlet(urlPatterns = '/index')public class Test extends HttpServlet{ @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {final Logger LOGGER = LogManager.getLogger();LOGGER.error('aefaefe');resp.getWriter().write('hi'); }}
错误信息是
java.lang.NoClassDefFoundError: org/apache/logging/log4j/LogManager
希望有经验的大佬帮帮忙
问题解答
回答1:可以在项目的发布目录下找一下对应的class文件是否存在
相关文章:
1. python - 求一个在def中可以实现调用本def满足特定条件continue效果的方法(标题说不太清楚,请见题内描述)2. $fields = $values = [];这条代码一直定义不了,一直报错,老师的源码也是被报错的,执行不了,请问该怎么解决这个问题3. javascript - mysql插入数据时怎样避免与库中的数据重复?4. MySQL 如何 SELECT 除去某一列的所有列?5. MySQL 这句 创建表结构语句的错误在哪?6. MySQL能否给某个字段的值设置有效期?7. 求一个mySQL安装包8. 导入phpmyadmin的时候报错了9. mysql数据库做关联一般用id还是用户名10. USE关键字
