zoukankan      html  css  js  c++  java
  • 【转】maven 项目出现 java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener

    http://blessht.iteye.com/blog/1104450

    http://www.cnblogs.com/zhouyalei/archive/2011/11/30/2268606.html

    严重: Error configuring application listener of class org.springframework.web.context.ContextLoaderListener
    java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener

    最近在做spring+struts2+IbatIS的项目,昨天eclipse启动服务器正常,结果今天来了就总是报错,错误如下:

    严重: Error configuring application listener of class org.springframework.web.context.ContextLoaderListener 
    java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener 
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1352) 
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1198) 
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3677) 
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4187) 
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1013) 
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:718) 
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1013) 
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:442) 
    at org.apache.catalina.core.StandardService.start(StandardService.java:450) 
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:709) 
    at org.apache.catalina.startup.Catalina.start(Catalina.java:551) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
    at java.lang.reflect.Method.invoke(Method.java:585) 
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:294) 
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:432)

    网上查,好多人说是没有spring的相关包,但是我有些不赞成,因为我的昨天还能启动的,所以应该不是这个问题

    最后我发现可能是tomcat的缓存问题,解决方法为:

    把eclipse里面的servers全部删除,然后把工程clean一下,之后重新建一个server运行。这样问题的就解决了。

    在网上找了些资料,有的说是少jar包,把有关spring的jar包复制到/WEB-INF/lib下面就行了,但这是maven项目,不需要这样做...

    还有一个原因是,项目不是maven项目,我这个之前是普通的web项目,只是加上了一个pom.xml而已
    需要修改的有两个地方
    1.项目根目录下的.project文件,用记事本打开,加入以下代码(把原来的<buildSpec>节点和<natures>替换了):

    复制代码
      <buildSpec>
    <buildCommand>
    <name>org.eclipse.wst.jsdt.core.javascriptValidator</name>
    <arguments>
    </arguments>
    </buildCommand>
    <buildCommand>
    <name>org.eclipse.jdt.core.javabuilder</name>
    <arguments>
    </arguments>
    </buildCommand>
    <buildCommand>
    <name>org.eclipse.wst.common.project.facet.core.builder</name>
    <arguments>
    </arguments>
    </buildCommand>
    <buildCommand>
    <name>org.eclipse.wst.validation.validationbuilder</name>
    <arguments>
    </arguments>
    </buildCommand>
    <buildCommand>
    <name>org.eclipse.m2e.core.maven2Builder</name>
    <arguments>
    </arguments>
    </buildCommand>
    <buildCommand>
    <name>org.maven.ide.eclipse.maven2Builder</name>
    <arguments>
    </arguments>
    </buildCommand>
    </buildSpec>
    <natures>
    <nature>org.maven.ide.eclipse.maven2Nature</nature>
    <nature>org.eclipse.m2e.core.maven2Nature</nature>
    <nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
    <nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
    <nature>org.eclipse.wst.common.project.facet.core.nature</nature>
    <nature>org.eclipse.jdt.core.javanature</nature>
    <nature>org.eclipse.wst.jsdt.core.jsNature</nature>
    </natures>
    复制代码


    2.项目根目录下的.classpath,找到

    <classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>

    替换为:

    <classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER">
    <attributes>
    <attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
    </attributes>
    </classpathentry>

    新增加一个classpathentry节点:

    <classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
    <attributes>
    <attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
    </attributes>
    </classpathentry>

    OK,到这一步已经完成了,到eclipse中刷新项目,然后重新启动tomcat,错误已经解决!



    在.classpath文件中:

    <classpathentry kind="output" path="target/classes"/>

    改为:

    <classpathentry kind="output" path="WebContent/WEB-INF/classes"/>

    习惯,^_^,把编译后的文件放到WEB-INF/classes下面

  • 相关阅读:
    oracle安装过程中遇到的问题
    HttpContext.Current 的缺陷
    oracle 复杂语句
    .net 中 ref out params的区别
    查看修改mysql编码方式[转载]
    Oracle 中的dual是什么东西
    KindEditor问题汇总【不定时更新】
    java中import、package作用和用法
    [笔记]: 哈弗曼树(最优二叉树) 标签: 二叉树 2017-05-17 16:38 34人阅读 评论(0) 收
    [noip 2004普及组] FBI树 标签: 二叉树递归 2017-05-17 14:29 40人阅读 评论(0)
  • 原文地址:https://www.cnblogs.com/exmyth/p/5136681.html
Copyright © 2011-2022 走看看