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. html5 - 移动端UC浏览器兼容问题2. 在windows下安装docker Toolbox 启动Docker Quickstart Terminal 失败!3. mac连接阿里云docker集群,已经卡了2天了,求问?4. 老师,你这两条斜杠的是怎么注释的?5. docker 下面创建的IMAGE 他们的 ID 一样?这个是怎么回事????6. PHP单例模式7. angular.js - angularjs ng-repeat 不能刷新8. $( "html" ).parent()方法返回一个包含document的集合,而$( "html" ).parents()返回一个空集合 哪位大神来解释下?9. docker镜像无法删除,请求解决办法。10. angular.js - 用angular2-cli打包项目之后,跳转路由刷新会报404的错误