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下面

  • 相关阅读:
    C#磁吸屏幕窗体类库
    准备
    我写的诗
    How to turn off a laptop keyboard
    How to tell which commit a tag points to in Git?
    Why should I care about lightweight vs. annotated tags?
    How to get rid of “would clobber existing tag”
    Facebook, Google and Twitter threaten to leave Hong Kong over privacy law changes
    The need for legislative reform on secrecy orders
    Can a foreign key be NULL and/or duplicate?
  • 原文地址:https://www.cnblogs.com/exmyth/p/5136681.html
Copyright © 2011-2022 走看看