Google应用引擎无限重定向,过滤器映射到/ *

时间:2012-09-06 06:10:26

标签: java google-app-engine objectify

我有一个简单的Web应用程序,它使用基本的jsp和servlet。 我有一个servlet过滤器映射到/ *。 我有一个配置为index.jsp的欢迎文件

<filter-mapping>
    <filter-name>ObjectifyFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

...

<welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
</welcome-file-list>

我遇到的问题是当一个不存在的资源请求并且在app引擎上部署时应该返回404错误时,会在尝试重复附加斜杠+欢迎文件时无休止地返回302。

E.G: http://myyapp.appspot.com/foo的请求(没有为foo配置任何内容)产生以下内容:

http://myyapp.appspot.com/foo/index.jsp/index.jsp/index.jsp/index.jsp/index.jsp/index.jsp/index.jsp/index.jsp/index.jsp/index.jsp/index.jsp/index.jsp/index.jsp/index.jsp/index.jsp/index.jsp/index.jsp/index.jsp/index.jsp/index.jsp/

在开发服务器上,这将返回预期的404.如果我删除了过滤器映射,它也会在应用引擎上返回404。

这看起来相当基本,所以我猜我错过了某个地方。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

看起来问题的一个基本要素是web.xml中的jsp-config标记。虽然我认为内容并不重要,但我看起来像这样:

<jsp-config>
    <jsp-property-group>
        <url-pattern>*.jsp</url-pattern>
        <page-encoding>UTF-8</page-encoding>
    </jsp-property-group>
</jsp-config>

删除jsp-config标签解决了我的问题,即它是一种解决方法。在我的情况下它没有太大的伤害,因为我可以分别在每个页面上指定页面编码。但是我仍然对真正的解决方案感兴趣。