Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在tomcat 7上运行的spring mvc应用程序中出现404错误_Java_Eclipse_Spring_Jsp_Tomcat - Fatal编程技术网

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,我会的。