尝试从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)
当我切换到Fedora 12 x64时,项目开始失败。该项目使用相同的配置在WinXP上工作。
在谷歌上搜索我发现帖子声称要转到项目属性 - > Java EE模块依赖项并检查 Maven依赖项框可修复此问题。可悲的是,它对我没用。
我正在使用Spring 2.5.6,Maven2,Eclipse 3.5(使用m2e 0.10.0插件),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之外构建或运行项目时没有任何问题。
答案 0 :(得分:19)
您的.classpath
似乎有Eclipse IAM和M2Eclipse个内容。我会做一些清理工作:
.classpath
和.project
并再次将项目导入为Maven项目。更新要获得M2Eclipse的WTP支持,您需要从m2eclipse Extras更新站点安装 Maven Integration for WTP :http://download.eclipse.org/m2e-wtp/releases/,如下图所示:
答案 1 :(得分:9)
我有相同的症状,原因不同。我不得不编辑我的.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>
...缺少此处显示的属性标记。当我添加属性标签时,问题就消失了。我非常好奇如何在eclipse ui中配置它。
答案 2 :(得分:4)
请注意,安装WTP集成的步骤已更改。
答案 3 :(得分:1)
不时面对同样的问题。
由于一些奇怪的原因,这个问题可以通过这种方式修复
1)右键单击项目Maven - &gt;禁用Maven依赖项
2)右键单击项目Maven - &gt;启用Maven依赖项