使用spring mvc发生奇怪的404错误

时间:2009-06-23 14:12:48

标签: java tomcat spring-mvc weblogic http-status-code-404

这是一个很长的镜头,但希望有人可以提供帮助。

我的应用程序是使用spring framework mvc。 99%的if工作正常。但是,当我尝试转到一个链接时,可以将其称为[path] /link.html。我收到404错误。但是,如果我在我的开发环境(tomcat,windows,IE和eclipse)中转到此链接,我没有得到这样的404错误(一切都按预期工作)。它只发生在我的生产网站(网络逻辑)。

我查看了日志文件,没有任何内容显示为问题。

<bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
        <property name="mappings">
            <props> 
<prop key="/link.html">linkController</prop>
...
</props>
</property>
</bean>

4 个答案:

答案 0 :(得分:1)

您可能需要使用web.xml元素将HTML文件的请求映射到<servlet-mapping>文件中的Controller servlet。您可能需要考虑使用link.do而不是link.html,因为将HTML文件的请求映射到控制器servlet可能会使应用程序中的静态内容变得有点棘手。

另一方面,一般来说,您希望开发堆栈尽可能地匹配生产堆栈。如果您使用WebLogic而不是Tomcat进行开发,那么您很可能很快就会发现这个问题,因为您正在使用WebLogic进行生产。

答案 1 :(得分:1)

在没有看到违规网址的情况下,我猜你的URL构造存在问题,而且它根本不对应于生产服务器上的资源,而不是你的配置存在问题,可以访问其他HTML资源。

我总是使用JSTL网址标记构建网址,其中涵盖了此处所述的所有内容(http://www.ibm.com/developerworks/java/library/j-jstl0318/#N10532

如果使用JSTL不是一个选项,那么该链接应该为您提供一些关于构建URL时需要考虑的内容的指示。

答案 2 :(得分:1)

从org.springframework记录器中调出日志记录,看看当你请求/link.html时Spring内发生了什么(或者你的web请求甚至是将它发送到DispatcherServlet)。

答案 3 :(得分:0)

实际上问题不在于spring / jsp / etc ......问题在于如何配置apache中的location指令。指令中的路径需要一个尾部斜杠。