2015年11月19日 环境配置 浏览(9106)

tomcat启动报:No Spring WebApplicationInitializer types detected on classpath

建议从三个方面排查:

    1. 启动tomcat时,观察tomcat在控制台Console输出的日志,找到项目运行位置。


       如果项目在tomcat的目录里面,则先清除:tomcat/work下面所有代码,再重试


    2. 查看项目的编译路径:选中项目->右键->Build Path->Configure Build Path 如图


        QQ图片20151119213443.png


        红圈圈里面就是项目的编译路径,在这个路径里面看看有没有web.xml 文件。没有则说明编译文件输出有问题。

        如果存在web.xml, 不妨试试如下发布tomcat的方式:

        路径 tomcat\conf\server.xml 配置如下发布代码(参考各自的项目路径)

   <Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true" xmlNamespaceAware="false" xmlValidation="false">
        <Context path="/xx" docBase="D:\everycoding-web\src\main\webapp" />
   </Host>

        配置完后,重启tomcat(最好用新的tomcat),如果发布成功,则说明是编译输出路径有问题。


   3.  查看web.xml中spring的监听


    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:config/spring/spring.xml</param-value>
    </context-param>
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>

       本配置中contextConfigLocation用于指定spring初始化webapplication的地址

       如果不设定,则默认地址:classpath:applicationContext.xml。

       核查下spring的初始化文件applicationContext.xml在编译路径web-info/classes下是否存在。

       如果不存在说明这就是问题关键所在。



用户头像