Failed to start component [StandardEngine[Tomcat].StandardHost[localhost].StandardContext[]] 错误(Day_25)

  • 错误:    在maven项目,web启动的时候报这个错误

Failed to start component [StandardEngine[Tomcat].StandardHost[localhost].StandardContext[]]

  • 错误原因:

    maven插件当中提供了servlet的jar包。但我们web当中又自己提供了servlet包。

    因为我们没有指定我们自己包的运行范围,默认在整个期间都生效、此时就会造成俩个包的冲突

所需要在自己包指定运行范围 : <scope> provided </scope>
 
  • 解决方法是:


   指定自己JAR包作用域为 provided

  • 此外,一个优秀的程序员在遇到错误后不仅要解决错误,更要学会扩展错误

关于maven依赖中的scope的作用和用法:

scope中的值常见可分为:

  • test

test范围指的是测试范围有效,在编译和打包时都不会使用这个依赖

  • compile

compile范围指的是编译范围有效,在编译和打包时都会将依赖存储进去

  • provided

provided依赖:在编译和测试的过程有效,最后生成war包时不会加入,诸如:servlet-api,因为servlet-api,tomcat等web服务器已经存在了,如果再打包会冲突

  • runtime

runntime:仅仅适用于运行环境,在编译和测试环境下都不会被使用

原文地址:https://www.cnblogs.com/papercy/p/14171574.html