【发布时间】:2012-07-20 06:47:29
【问题描述】:
这不是一个问题。我试图找到以下行为的原因。
我正在开发涉及 Spring、Hibernate 和 Struts2 等技术的简单 Web 应用程序。
我使用 Maven 3 作为构建工具。当我开始使用 eclipse Juno 版本运行项目时,出现以下错误:
java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener
但是在pom.xml 中,我添加了spring web 框架的依赖项,当我在eclipse 中列出jar 时,我可以看到这个上下文加载器文件在那里。
但是当我将以下插件配置添加到 pom.xml 时,不会抛出此异常:
<plugin>
<version>2.9</version>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-eclipse-plugin</artifactId>
<configuration>
<wtpversion>2.0</wtpversion>
</configuration>
</plugin>
我只是想为这种行为找到一个原因。提前感谢您提供任何线索。
我已将以下 maven 插件集成到 maven 中。
【问题讨论】:
-
这篇文章是我见过的最好的不使用 Maven 或 Spring 的广告。
-
我不能代表 Spring,但我同意“没有 Maven”部分。为什么,克提斯?因为这是一个简单的 CLASSPATH 问题,但是在你和你对 Java 工作原理的理解之间有太多的机制,以至于你无法弄清楚。在使用 Eclipse 或 Maven 之前让它们工作。
-
@duffymo -- 是的,这就是我要说的。就 Spring 而言,他缺少一个名为
org.springframework.web.context.ContextLoaderListener的类,但在创建过程中,他无法明确使用这个类,或者甚至可能知道它是什么——他也不应该,在这两种情况下。然而它是这样的:如果你使用 Eclipse、Maven 和 Spring,你并没有弄清楚如何编写一个简单的 Web 应用程序:你试图弄清楚如何让 Eclipse 告诉 Maven 加载一些你不知道的类甚至不需要。 -
我不同意,EFH。他确实需要它。在他的 web.xml 中;它用于加载应用程序上下文 XML。它是 Spring Web 模块的一部分。它应该在 Spring JAR 的 WEB-INF/lib 中。
-
@ErnestFriedman-Hill ,我同意你的说法,即“你正试图弄清楚如何让 Eclipse 告诉 maven 加载一些你甚至不需要的类”。但是,问题是为什么它只是说缺少这个类,我添加了几个其他依赖项,但是对于那些,它不会抛出异常
标签: java spring maven spring-webflow