代码之家  ›  专栏  ›  技术社区  ›  Elliot Vargas

在Eclipse3.5中的Tomcat6上运行Spring+Maven2项目时发生ClassNotFoundException

  •  15
  • Elliot Vargas  · 技术社区  · 15 年前

    当尝试从Eclipse中启动Web项目时,我得到:

    
    SEVERE: 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:1387)
        at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233)
        at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3877)
        at org.apache.catalina.core.StandardContext.start(StandardContext.java:4429)
        at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
        at org.apache.catalina.core.StandardHost.start(StandardHost.java:722)
        at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
        at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
        at org.apache.catalina.core.StandardService.start(StandardService.java:516)
        at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
        at org.apache.catalina.startup.Catalina.start(Catalina.java:583)
        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:597)
        at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
    

    当我切换到Fedora12x64时,项目开始失败。该项目使用相同的配置在WinXP上工作。

    在网上搜索,我发现一些帖子声称 项目属性-gt;JavaEE模块依赖关系 然后检查 Maven依赖项 Box修复了问题。可悲的是,它对我不起作用。

    我使用Spring 2.5.6、Mave2、Eclipse 3.5(带有M2E 0.100插件)、Tomcat 6和Java 6在FEDORA 12 X64上运行。

    有人看到这个问题吗?

    如果有帮助的话,这里是我的.classpath文件

    
    <?xml version="1.0" encoding="UTF-8"?>
    <classpath>
        <classpathentry kind="src" output="target/classes" path="src/main/java"/>
        <classpathentry kind="src" output="target/classes" path="target/generated-sources/gpb"/>
        <classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"/>
        <classpathentry kind="src" output="target/test-classes" path="src/test/java"/>
    
        <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
    
        <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 kind="con" path="org.eclipse.iam.jdt.core.mavenClasspathContainer">
            <attributes>
                <attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
            </attributes>
        </classpathentry>
        <classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.web.container"/>
        <classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.module.container"/>
        <classpathentry kind="output" path="target/classes"/>
    </classpath>
    

    更新: 在Eclipse之外构建或运行项目没有任何问题。

    4 回复  |  直到 9 年前
        1
  •  19
  •   SuperBiasedMan Jayesh Kalkani    9 年前

    您似乎同时拥有 eclipse iam m2eclipse stufacture in your .classpath 。我会清理一下:

    • 只使用其中一个插件(我建议使用M2Eclipse)。
    • 从Eclipse的工作区中删除您的项目,删除 .classpath和 .project,然后再次将该项目作为maven项目导入。

    更新: 要获得M2Eclipse的WTP支持,您需要从M2Eclipse Extras更新站点安装WTP的 Maven集成: http://download.eclipse.org/m2e wtp/releases/ 如下图所示:

    M2Eclipse 你的东西 .classpath . 我会做一些清理工作:

    • 只使用其中一个插件(我建议使用M2Eclipse)。
    • 从Eclipse的工作区中删除项目,删除 类路径 .project 并将该项目作为Maven项目再次导入。

    更新: 要使用M2Eclipse获得WTP支持,需要安装 水处理厂的Maven集成 从M2Eclipse Extras更新站点: http://download.eclipse.org/m2e-wtp/releases/ 如下图所示:

    enter image description here

        2
  •  9
  •   darrint    14 年前

    我有同样的症状,但原因不同。我必须编辑.classpath文件。Maven条目:

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

    …缺少此处显示的属性标记。当我添加属性标签时,问题就消失了。我很好奇如何在EclipseUI中配置它。

        3
  •  4
  •   Community CDub    8 年前

    请注意,安装WTP集成的步骤已更改。

    见: Maven/Tomcat Projects In Eclipse Indigo/3.7

        4
  •  1
  •   user12384512    13 年前

    有时,面对同样的问题。

    出于某种奇怪的原因,这个问题可以通过这种方式解决

    1)右键单击项目maven->禁用maven依赖项

    2)右键单击项目maven->启用maven依赖项