tomcat 错误 严重:Error listenerStart
网上说有很多种可能的原因,我的是因为缺少了spring-core.jar,但我的pom.xml里确实是有的,而且在eclipse里是可以跑的程序,打成war后这个包就没了。
原因是加了句provided,把下面的scope这句去掉就好了:
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>${spring.version}</version> </dependency>
<scope>provided</scope>
provided指明只在编译时使用这个jar包,但打包时不会将它打包在内,所以如果目标容器(如tomcat)没有这个包,就会报错。
http://peak.iteye.com/blog/299225 写道
依赖范围控制哪些依赖在哪些classpath 中可用,哪些依赖包含在一个应用中。让我们详细看一下每一种范围:
compile (编译范围)
compile是默认的范围;如果没有提供一个范围,那该依赖的范围就是编译范围。编译范围依赖在所有的classpath 中可用,同时它们也会被打包。
provided (已提供范围)
provided 依赖只有在当JDK 或者一个容器已提供该依赖之后才使用。例如, 如果你开发了一个web 应用,你可能在编译 classpath 中需要可用的Servlet API 来编译一个servlet,但是你不会想要在打包好的WAR 中包含这个Servlet API;这个Servlet API JAR 由你的应用服务器或者servlet 容器提供。已提供范围的依赖在编译classpath (不是运行时)可用。它们不是传递性的,也不会被打包。
runtime (运行时范围)
runtime 依赖在运行和测试系统的时候需要,但在编译的时候不需要。比如,你可能在编译的时候只需要JDBC API JAR,而只有在运行的时候才需要JDBC
驱动实现。
test (测试范围)
test范围依赖 在一般的编译和运行时都不需要,它们只有在测试编译和测试运行阶段可用。
system (系统范围)
system范围依赖与provided 类似,但是你必须显式的提供一个对于本地系统中JAR 文件的路径。这么做是为了允许基于本地对象编译,而这些对象是系统类库的一部分。这样的构件应该是一直可用的,Maven 也不会在仓库中去寻找它。如果你将一个依赖范围设置成系统范围,你必须同时提供一个 systemPath 元素。注意该范围是不推荐使用的(你应该一直尽量去从公共或定制的 Maven 仓库中引用依赖)。
compile (编译范围)
compile是默认的范围;如果没有提供一个范围,那该依赖的范围就是编译范围。编译范围依赖在所有的classpath 中可用,同时它们也会被打包。
provided (已提供范围)
provided 依赖只有在当JDK 或者一个容器已提供该依赖之后才使用。例如, 如果你开发了一个web 应用,你可能在编译 classpath 中需要可用的Servlet API 来编译一个servlet,但是你不会想要在打包好的WAR 中包含这个Servlet API;这个Servlet API JAR 由你的应用服务器或者servlet 容器提供。已提供范围的依赖在编译classpath (不是运行时)可用。它们不是传递性的,也不会被打包。
runtime (运行时范围)
runtime 依赖在运行和测试系统的时候需要,但在编译的时候不需要。比如,你可能在编译的时候只需要JDBC API JAR,而只有在运行的时候才需要JDBC
驱动实现。
test (测试范围)
test范围依赖 在一般的编译和运行时都不需要,它们只有在测试编译和测试运行阶段可用。
system (系统范围)
system范围依赖与provided 类似,但是你必须显式的提供一个对于本地系统中JAR 文件的路径。这么做是为了允许基于本地对象编译,而这些对象是系统类库的一部分。这样的构件应该是一直可用的,Maven 也不会在仓库中去寻找它。如果你将一个依赖范围设置成系统范围,你必须同时提供一个 systemPath 元素。注意该范围是不推荐使用的(你应该一直尽量去从公共或定制的 Maven 仓库中引用依赖)。
相关推荐
现在很多小型开发者会碰到这样的问题,在服务器上发布tomcat war包新版本的时候,需要在本地编写打包好war包,登录服务器,停止服务器上tomcat的运行,上传war包,运行服务器tomcat。这一切很繁琐,浪费时间也容易...
在开发Java Web应用程序时,有时候我们需要对部署在远程Tomcat服务器上的war包或jar包进行调试。IntelliJ IDEA(Idea)提供了强大的远程调试功能,使得开发者可以在本地环境中进行远程调试,极大地提高了开发效率。...
- 检查Tomcat和war包的文件权限,确保Tomcat有足够的权限读取和执行war包内的文件。 10. **服务器资源限制**: - 如果服务器内存不足或CPU资源紧张,可能会导致启动失败。检查服务器资源状况,并根据需要调整...
在开发过程中,当项目需要频繁更新和优化时,传统的部署方式——将项目打包成war包,放入Tomcat的webapps目录下并重启服务,会显得效率低下且繁琐。为了解决这个问题,我们可以利用Tomcat和Maven的热部署配置来实现...
dubbo-admin,dubbo服务管理war包,直接扔到tomcat下即可运行,注意:JDK版本需要1.8以下(不然启动会出错),如JDK1.7;启动dubbo-admin服务时需要先启动zookeeper。
### Tomcat部署项目时报错解决方案 在部署Java Web应用程序到Apache Tomcat服务器的过程中,经常会遇到各种各样的问题,其中一种常见的错误就是启动时出现“严重:Exception starting filters struts2”这样的异常...
而集成服务器,如Tomcat、Jetty、WebLogic或WebSphere,是用来部署和管理这些WAR包的平台。 首先,WAR包是基于JAR(Java ARchive)格式的扩展,专为Web应用程序设计。开发者可以使用构建工具,如Maven或Gradle,将...
4. **部署到Tomcat**:构建成功后,Jenkins可以通过使用`deploy`生命周期阶段的Maven目标,如`mvn tomcat7:deploy`,将WAR文件部署到远程Tomcat服务器。也可以编写shell脚本手动完成这个过程,包括停止Tomcat、复制...
确保你的WAR文件或解压后的应用目录已经被正确地放置在Tomcat的webapps目录下。如果Tomcat没有自动识别并部署你的应用,可能需要手动启动部署,或者通过管理工具如Tomcat Manager进行部署。 接着,**验证应用日志**...
3. **复制或解压应用**:将编译后的WAR包或者直接将源代码复制到Tomcat的webapps目录下。这一步使得Tomcat能检测到新的或更新的应用。 4. **停止当前运行的实例**:在部署新版本应用之前,脚本可能需要先停止正在...
问题3中,尝试添加新的`war`包并启动Tomcat时,遇到了端口被占用的问题。这是因为之前的服务没有完全停止。通过`ps aux | grep tomcat`查找并杀死相关进程,使用`kill -9 PID`来结束Tomcat进程,然后可以重新启动...
6. **部署应用程序**:用户可以通过将Web应用的WAR文件放入Tomcat的webapps目录下,或者在管理界面(如Manager App)上传,来部署应用程序。 7. **日志与调试**:Tomcat产生的日志文件可以帮助开发者诊断问题,例如...
7. 配置artifacts:在IDEA中运行Tomcat可能会因为未配置artifacts而出错。artifacts是指定如何将项目文件打包成可部署的格式(如WAR包)。具体操作是点击Deployment标签页,然后点击小铅笔图标进行配置。创建新的...
这种版本的TomCat通常包含了所有运行所需的库和配置文件,用户在遇到配置错误时,如XML配置文件出错,不必进行繁琐的故障排查,而是可以直接替换新的解压文件,快速恢复服务,极大地提高了工作效率。 TomCat是...
对于“避免出错的几率”,这可能意味着Tomcat 6.0.48在设计时已经考虑了常见的配置错误,并尽可能地进行了预防。例如,它可能会限制某些敏感配置的默认值,以减少安全漏洞的风险,或者提供清晰的错误提示,帮助用户...
2. **项目部署**:MyEclipse支持直接将Web项目部署到Tomcat 7上,用户只需将项目拖放到服务器实例上,MyEclipse会自动生成相应的部署描述符(如`web.xml`),并将项目打包成WAR文件,放入Tomcat的`webapps`目录下。...
1. **自动部署应用**:编写shell脚本,将WAR文件拷贝到`webapps`目录下,或者通过`bin/appdeploy.sh`自定义部署逻辑。 2. **备份与恢复**:创建备份脚本,定期备份`conf`, `webapps`和`logs`目录,同时可以编写恢复...
5. **部署应用程序**: 将WAR文件或整个应用目录放入`webapps`目录下,Tomcat会自动部署并运行应用程序。也可以通过管理工具(如Manager App)远程部署应用。 6. **日志与监控**: Tomcat的日志文件位于`logs`目录下...
2. **快速部署**:只需将项目右键拖拽到Tomcat服务器视图,即可完成应用的部署,省去了传统方式下手动复制WAR或WEB-INF文件到Tomcat目录的繁琐步骤。 3. **实时更新**:当代码发生变化时,插件支持热部署,自动检测...