2

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

我的应用程序正在使用 spring 框架 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

4 回答 4

1

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

另一方面,一般来说,您希望您的开发堆栈尽可能地匹配您的生产堆栈。如果您使用 WebLogic 而不是 Tomcat 进行开发,您似乎至少会更早地发现这个问题,因为您在生产中使用 WebLogic。

于 2009-06-23T14:27:58.667 回答
1

如果没有看到有问题的 URL,我猜你的 URL 构造有问题,并且它根本不对应于生产服务器上的资源,而不是你的配置有问题,因为其他 HTML 资源是可访问的。

我总是使用 JSTL URL 标签来构建 URL,它涵盖了这里描述的所有内容 ( http://www.ibm.com/developerworks/java/library/j-jstl0318/#N10532 )

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

于 2009-06-23T14:29:30.193 回答
1

从 org.springframework 记录器中打开日志记录,并查看在您请求时 Spring 中发生了什么(或者您的 Web 请求是否甚至发送到 DispatcherServlet)/link.html

于 2009-06-23T14:40:16.583 回答
0

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

于 2009-06-24T18:54:49.213 回答