【发布时间】:2014-05-13 08:37:21
【问题描述】:
我正在关注位于 here 的 Spring 教程(链接指向第 1 章,但我目前正在阅读第 2 章,第 2.2 部分)。我在大学里有大约 2 年的 Java 经验,但我以前从未用过 Spring,这就是为什么我认为分步教程会有所帮助。
问题是,教程提供了一个链接来下载所有必要的 jar 文件,但该链接现在指向 spring projects page。那里的“Spring Framework”链接似乎要求您从 GitHub 下载它,我这样做了,但此下载中似乎没有任何 jar 文件。所以每当教程说要使用某个 jar 文件时,我就用谷歌搜索它并在其他地方找到它,一切似乎都运行良好。
所以问题出在这里:在第 2.2 步“改进控制器”中,我已按照说明进行操作,并进入了显示
的部分“我们重新运行我们的‘测试’目标并且测试通过了”
但正如您可能已经猜到的那样,它对我不起作用,出现以下错误:
[junit] ------------- Standard Error -----------------
[junit] May 13, 2014 8:40:40 AM springapp.web.HelloController handleRequest
[junit] INFO: Returning hello view with Tue May 13 08:40:40 BST 2014
[junit] ------------- ---------------- ---------------
[junit] Testcase: testHandleRequestView(springapp.web.HelloControllerTests):
Caused an ERROR
[junit] org/springframework/ui/ModelMap
[junit] java.lang.NoClassDefFoundError: org/springframework/ui/ModelMap
[junit] at org.springframework.web.servlet.ModelAndView.getModelMap(Mode
lAndView.java:205)
[junit] at org.springframework.web.servlet.ModelAndView.addObject(ModelA
ndView.java:227)
[junit] at org.springframework.web.servlet.ModelAndView.<init>(ModelAndV
iew.java:127)
[junit] at springapp.web.HelloController.handleRequest(HelloController.j
ava:26)
[junit] at springapp.web.HelloControllerTests.testHandleRequestView(Hell
oControllerTests.java:13)
[junit] Caused by: java.lang.ClassNotFoundException: org.springframework.ui.
ModelMap
[junit] at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
[junit]
[junit]
[junit] Test springapp.web.HelloControllerTests FAILED
BUILD FAILED
我在 Google 上搜索过 NoClassDefFoundError,其中一个原因似乎是缺少 jar 文件。我认为这里就是这种情况,因为我都是通过 Google 找到的。
所以我的问题是,我是否正确假设这是问题所在,如果是这样,有人知道我缺少什么 jar 文件以及在哪里可以找到它吗?或者有没有人之前完成过这个教程并且可以给我提供这些罐子?
提前致谢!
编辑:这些是我目前在 war/WEB-INF/lib 中的 jar,它们都已添加到构建路径中:
commons-logging-1.1.3.jar
servlet-api.jar
junit-4.11.jar
jstl.jar
standard.jar
spring-webmvc.jar
spring.jar
【问题讨论】:
-
您所遵循的教程已经很老了!!!我建议你在这里查看教程spring.io/guides
-
是的,它很老了,但它是我找到的第一个标题中带有“逐步”的,所以我认为它会很完美。直到第2章我才意识到它有多大!无论如何,我会查看您链接到的教程,希望它们会更有用。
-
这是个好主意。如果您有任何问题,SO 随时为您提供帮助:)
-
回应 Imran:1)我在 Web-Inf\lib 文件夹中有罐子,我已经用那里的所有罐子编辑了我的问题 2)我不确定你的意思“部署程序集”,您的意思是添加到构建路径吗?您链接到的问题的答案表明 jar 文件中的重复类之间可能存在冲突,因此我删除了 spring-webmvc.jar 并在 eclipse 中遇到了一些错误,而 spring.jar 给了我相同的 NoClassDefFoundError 错误.另外,我没有使用 maven,因为教程根本没有提到它
-
您可能应该在具体答案中添加评论:)
标签: spring noclassdeffounderror