为什么基本的spring 4样本不会运行Eclipse kepler?

时间:2014-04-09 05:38:59

标签: java eclipse spring

我在这里使用的示例项目代码是我从以下网站下载的: http://javahash.com/spring-4-mvc-hello-world-tutorial-full-example/

此处有直接链接: http://javahash.com/wp-content/uploads/2014/02/Spring4MVCHelloWorld.zip

我有Eclipse Kepler SR2(J2EE),Tomcat 7 64位,Java 7。

该项目似乎不是一个Web项目,所以我添加了“Dynamic Web Module”3.0版和“Java”(1.7版)。我右击,maven安装,看起来运行正常。当我尝试在tomcat上实际部署它时,它不会在控制台中给出任何错误,但是当弹出浏览器窗口时它会显示404

http://localhost:8080/Spring4MVCHelloWorld/



HTTP Status 404 - /Spring4MVCHelloWorld/

--------------------------------------------------------------------------------

type Status report

message /Spring4MVCHelloWorld/

description The requested resource is not available.


--------------------------------------------------------------------------------

Apache Tomcat/6.0.39

那就是说,如何在eclipse中运行这个“基本”示例?有人能够成功地完成这项工作吗?感觉它应该比我试图让这个示例代码无效的5个小时更加微不足道。

更新: 尽管使用Tomcat 7.0服务器,仍然会继续失败。

  1. 下载示例,将内容解压缩到工作区目录。
  2. Eclipse中的“导入现有项目”
  3. 由于没有“Run On Server”选项,我右键单击导入的项目目录并点击“Properties”。
  4. 我转到“Project Facets”并检查两件事:“Dynamic Web Module”(3.0)和“Java”(1.7)然后点击apply然后“Ok”。
  5. 我右键单击Spring4MVCHelloWorld项目并单击“Maven” - >“更新项目”。然后我点击“Run On Server”。
  6. 控制台中没有错误,但在eclipse中弹出的Web浏览器显示HTTP状态404.
  7. 我试着去:

    http://localhost:8080/Spring4MVCHelloWord/hello
    

    并且相同:

    HTTP状态404 - / Spring4MVCHelloWorld / hello

    显示,但tomcat显示为:

    Apache Tomcat / 7.0.53

    请注意,这是64位版本。我错过了哪些步骤?我如何解决这种无声的失败?

2 个答案:

答案 0 :(得分:1)

据我所知,您的控制器只会映射到/hello,这意味着您的网址应为:

http://localhost:8080/Spring4MVCHelloWorld/hello

您可能感兴趣的另一件事是,如果您的某些项目方面存在问题(例如动态Web模块)无法识别,您通常可以通过单击您的项目来修复它们, Maven 菜单并选择更新项目

答案 1 :(得分:1)

Dimitri所述之外,您的日志似乎表明您正在使用

Apache Tomcat/6.0.39

version of Tomcat不支持Spring Web应用程序依赖的ServletContainerInitializer进行配置。升级到Tomcat版本7 +。


看起来Maven更新对你(或对我来说)不起作用。

首先,进入Properties -> Deployment Assembly。你需要摆脱Web Content,如果它在那里并添加src/main/webapp(这是一个maven惯例)。您还需要添加Maven依赖项,如下所示。

enter image description here

最后,这可能没有必要,删除提供给您的web.xml,然后通过选择并右键单击Project Explorer中的Deployment Descriptor并点击Generate Deployment Descriptor Stub来重新创建它。 / p>

另外,请确保Java Build Path中的Properties具有Java 7+版本的JRE。