最近新建了一个简单的springmvc项目,同样是采取maven来管理的。一切配置好之后,在idea中用tomcat启动却一直报错,查看了下主要是日志这里:
java.lang.NoClassDefFoundError: org/apache/log4j/LogManager at org.springframework.util.Log4jConfigurer.shutdownLogging(Log4jConfigurer.java:123) at org.springframework.web.util.Log4jWebConfigurer.shutdownLogging(Log4jWebConfigurer.java:172) at org.springframework.web.util.Log4jConfigListener.contextDestroyed(Log4jConfigListener.java:54) at org.apache.catalina.core.StandardContext.listenerStop(StandardContext.java:4840) Caused by: java.lang.ClassNotFoundException: org.apache.log4j.LogManager at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1333) at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1167) ... 49 more
排查过程:
1 根据提示很明显的就是缺少相应的jar包,然后去pom文件中看了下。跟这个日志有关的几个jar都是存在的:
<dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>${slf4j-version}</version> </dependency> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.11</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>${slf4j-version}</version> </dependency>
ps:上面的slf4j版本号:1.7.12
2 jar既然没问题,但是tomcat启动却一直报错。于是就先不用tomcat来启动,直接在idea中来启动,方法 是利用单元测试来测试的,
①相关依赖包:
<!--test--> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> <scope>test</scope> </dependency> <dependency> <groupId>org.mockito</groupId> <artifactId>mockito-core</artifactId> <version>1.8.5</version> <scope>test</scope> </dependency> <dependency> <groupId>org.hamcrest</groupId> <artifactId>hamcrest-all</artifactId> <version>1.3</version> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>${spring-version}</version> </dependency>
② 测试类:
@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = {"/applicationContext.xml","/dispatcher-servlet.xml"}) public class TxtFileServiceImplTest { @Autowired private TxtFileService txtFileService; public void testStart(){ txtFileService.getLocalTxtFileVale(); } }
结果可以正常测试成功,证明项目是没问题的。
3 检查打包到tomcat的jar包(tomcat-webapps -项目名称-lib下) 结果发现果然缺少这些包,问题找到了,原来是配置tomcat启动项目的时候包没有加进去,解决办法:
1⃣️ 鼠标选中项目按F4或者右键选择 open-moulde-setting
2⃣️ 在弹出框左侧 选择Artifacts 然后选中你tomcat解析的那个war包,在右侧最大的那个框看下你需要加载的包是不是已经放到WEB-INF--lib 目录下了,如果没有的话,选中需要加载的包 右键,选择Put into web-inf/lib 这个就可以了。如下图所示:
当然正常情况下,创建项目是会默认加进去的。
相关推荐
在Java Web开发领域,Tomcat是应用最广泛的轻量级服务器之一,尤其对于初学者和小型项目而言。Tomcat 6是一个较旧的版本,发布于2009年,支持Java EE 5规范。 IntelliJ IDEA是一款强大的集成开发环境(IDE),广泛...
在IT行业中,集成开发环境(IDE)...在实际开发中,可能还需要根据具体需求配置虚拟主机、调整Tomcat参数、处理热部署等问题,但这些都建立在基础配置之上。不断实践和学习,才能更好地利用IDEA和Tomcat进行高效开发。
这份“IntelliJ IDEA的安装、配置与使用”指南将带领你深入了解这款强大的工具,助你在Java开发之路上更加得心应手。 首先,安装过程相对简单,通常只需下载最新版本的IntelliJ IDEA安装包,按照向导步骤进行即可。...
Java Web 项目是最常见的项目类型之一,Tomcat 是最流行的 Java Web 服务器之一。本文将介绍如何使用 IntelliJ IDEA 12 创建 Java Web 项目,并将其部署到 Tomcat 服务器上。 一、创建 Java Web 项目 在 IntelliJ ...
6. **事件触发配置**:IntelliJ IDEA特有的配置之一是事件触发配置,在Tomcat运行时可以设置触发事件。例如On Update Action允许开发者在使用Ctrl+F10进行容器更新时,根据配置的事件内容进行容器更新。常用的事件是...
为了提高开发效率,IDEA提供了许多实用的功能,其中之一就是自动编译功能。通过开启自动编译,开发者可以在编辑源代码后立即看到改动效果,无需手动触发编译过程。本文将详细介绍如何在IDEA中开启自动编译功能。 ##...
2. 取消默认打开最后使用的项目,这个选项允许用户在IDEA启动时选择是否自动打开上次关闭时的项目。 3. 配置自动引入,指的是设置当用户输入代码时,IDEA是否自动添加必要的import语句。 4. 设置编辑器字体和字号,...
- 使能Debug模式(JPDA):直接在命令行中执行`catalina.bat jpda start`来启动Tomcat。 **坑1**: 使用`startup.bat`命令启动时,即使加上`jpda start`参数,也可能无法正确绑定8000端口。这是因为`startup.bat`与...
"Tomcat插件"是针对Eclipse集成开发环境(IDE)的一个扩展,旨在简化在Eclipse中管理和调试Tomcat服务器的过程。这个插件名为"com.sysdeo.eclipse.tomcat_3.2.1",版本号为3.2.1,表明它是由Sysdeo公司开发的,并且...
`bin`目录包含启动和停止Tomcat的脚本,`conf`目录包含服务器的配置文件,`lib`目录存放运行Tomcat所需的库文件,`webapps`则是部署Web应用程序的地方。 源码学习通常分为几个阶段: 1. **了解架构**:阅读`server...
在Windows、Linux或Mac OS等操作系统上,Tomcat的安装通常涉及解压下载的Tomcat压缩包,配置环境变量,然后启动Tomcat的`catalina.sh`或`catalina.bat`脚本。一旦启动,可以通过默认的8080端口访问Tomcat的管理界面...
它是由Apache Software Foundation维护的,并且是Java EE(现在称为Jakarta EE)规范的重要实现之一,尤其是Servlet、JSP和EL(Expression Language)规范。Tomcat以其轻量级、高效和易于配置的特点,成为了许多开发...
在IT行业中,源码阅读是提升技术水平的重要途径之一,尤其是对于服务器端应用的开发者来说,理解Web服务器如Tomcat的工作原理能帮助我们更好地优化性能、排查问题。本篇将聚焦于"Tomcat源码阅读(一)——环境搭建...
为了启动Tomcat,只需在命令行中运行`bin`目录下的相应脚本。 在开发Java Web应用时,Tomcat提供了便捷的开发和调试环境。开发者可以利用集成开发环境(IDE),如Eclipse或IntelliJ IDEA,通过插件直接与Tomcat进行...
Apache Tomcat 是Apache软件基金会的项目之一,它的主要功能是作为Servlet和JSP容器。Servlet是一种Java编程语言的API,用于扩展服务器的功能,而JSP则是一种基于Java的动态网页技术,可以将静态内容和动态逻辑结合...
Apache Tomcat 7.0.53 是一个广泛使用的开源软件,它是一个实现了Java Servlet、JavaServer Pages(JSP)和Java EE的...同时,深入理解Tomcat的工作原理和配置选项,对于优化应用性能和解决运行中遇到的问题至关重要。
它由Apache软件基金会维护,是Java社区中最受欢迎的Web服务器之一。 2. **安装Tomcat** 安装过程相对简单,如描述中提到的。通常,这包括下载与操作系统匹配的Tomcat版本(例如,提供的`apache-tomcat-8.5.32.exe`...