这是一个很长的镜头,但希望有人可以提供帮助。
我的应用程序是使用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>
答案 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指令。指令中的路径需要一个尾部斜杠。