Java 在tomcat 7上运行的spring mvc应用程序中出现404错误
我得到一个Java 在tomcat 7上运行的spring mvc应用程序中出现404错误,java,eclipse,spring,jsp,tomcat,Java,Eclipse,Spring,Jsp,Tomcat,我得到一个404错误:请求的资源在我在eclipse中开发的spring mvc应用程序中不可用,并使用运行方式在tomcat 7的本地实例上进行测试。。。在eclipse中的服务器上运行。当应用程序启动应用程序的根url时,会显示该错误 自从上次运行以来,我没有对welcome.jsp或xml配置文件进行任何更改。由于问题不在于配置文件,我不会通过添加它们来分散这篇文章的注意力 还要注意,eclipse控制台中没有错误日志或堆栈跟踪 我如何在不抛出404的情况下加载我的应用程序 注意:我将自己
404
错误:请求的资源在我在eclipse中开发的spring mvc应用程序中不可用
,并使用运行方式在tomcat 7的本地实例上进行测试。。。在eclipse中的服务器上运行。当应用程序启动应用程序的根url时,会显示该错误
自从上次运行以来,我没有对welcome.jsp或xml配置文件进行任何更改。由于问题不在于配置文件,我不会通过添加它们来分散这篇文章的注意力
还要注意,eclipse控制台中没有错误日志或堆栈跟踪
我如何在不抛出404的情况下加载我的应用程序
注意:我将自己的答案放在下面。结果证明,解决方案是在eclipse的servers选项卡中右键单击服务器实例,然后进行清理,然后发布,然后作为…再次在服务器上运行,这导致应用程序加载有意义的堆栈跟踪,然后我很容易解决了这个问题。正如我在上面预测的,这个问题是eclipse的问题,而不是配置文件的问题。这是一个正确的问题。没有必要投票否决它或投票关闭它。我希望它能帮助其他人。通常,您不会将html或jsp文件放在WEB-INF文件夹下。通常,您的目录结构如下所示:
[application root]
|
|_ index.html
|_ index.jsp
|_ media
| |_ css
| |_ js
| | |_ jquery..js
| |
| |_ images
|_ META-INF
| |_ context.xml
|_WEB-INF
|_ classes
|_ lib
| |_ jed-1.0.jar
| |_ gson-2.2.4.jar
| |_ log4j-1.2.8.jar
| |_ mysql-connector-java-5.1.18.jar
|_ properties
|_ log4j_CONSOLE.properties
|_ log4j_FILE.properties
您将得到一个404错误,因为servlet容器在应用程序根文件夹下查找html或jsp页面,而不是在WEB-INF文件夹下。此外,您的web.xml文件应包含以下内容,以便专门指向主页:
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
index.jsp
你的web.xml没有这个。希望这有帮助。编辑(我已使用viewResolver设置删除了零件)
我向您推荐以下想法之一:
- 在eclipse中使用tomcat检查设置,并检查您的更改是否正确发布在tomcat中
- 转到项目的属性,检查“部署程序集”,并检查您在其中看到的文件夹是否正常,eclipse是否在此处删除了一些路径,或者没有链接到正确的“部署路径”,您可以添加更多或编辑
- 最后一个:)。使用tomcat菜单“播放一点”。有时对我来说,清理服务器、重新启动或最大的一个都是有效的:删除web应用程序、清理、重新启动tomcat以确保应用程序没有重新启动(有些情况下清理并不完美),然后再次添加应用程序
我希望这些事情中有一些是正确的。(如果不查看eclipse中的设置或检查某些内容,您很难想象会有更多的问题)问题在于eclipse中的损坏。因此,解决办法是:
在eclipse中单击servers选项卡
右键单击服务器实例
选择干净
重复右键单击服务器实例,然后选择“发布”
在应用程序的服务器上以…运行方式运行
这5个步骤导致应用程序加载时出现了一个有意义的堆栈跟踪错误,这涉及到我上次在Eclipse中工作时正在编辑的_someclassname_controller.java中的冗余url映射。当我解决堆栈跟踪错误时,应用程序再次运行。请将源代码直接添加到问题中。发布您用于访问应用程序的URLapplication@CodeMed是的,但是直接在问题中发布源代码。如果链接变得过时,这个问题将变得毫无用处。@CodeMed Fair@Alan这不是真的,你可以使用“视图解析器”将视图放入WEB-INF,这是非常常见的,我想是出于一些安全原因(我不记得了).正如我所想:@Alan+1我想出了解决方案,如果你有兴趣,我会把它作为另一个答案发布。再次感谢您的帮助。非常感谢您的时间。@CodeMed您如何使用eclipse部署应用程序?爆炸还是不爆炸?您确定eclipse部署正在查找jsp文件吗?可能是您在eclipse中的部署做了一些不好的事情,这就是它找不到该文件的原因。+1感谢您尝试深入研究这个问题。我现在就试试你的新建议。我刚刚尝试了您的ViewResolver更改,eclipse给了我一个Tomcat7启动失败的错误,这可能与您的建议无关,因为我最近遇到了这个错误。我想在我的设置中,无论是在我的应用程序的其他地方,还是在tomcat中,都发生了一些变化。我只是不知道该看什么或去哪里。我现在将尝试你的新想法。我想出了解决方案,如果你有兴趣,我将它作为另一个答案发布。再次感谢您的帮助。非常感谢您抽出时间。如果我能+2,我会的。