【问题标题】:Why live AppEngine is not calling my servlet filter?为什么实时 AppEngine 没有调用我的 servlet 过滤器?
【发布时间】:2016-06-16 12:16:17
【问题描述】:

我为我的应用引擎项目编写了一个 servlet 过滤器。

它是从本地开发机器调用的。

但是当我将代码放入 Google App Engine 实时服务器时,它没有被调用。

谁能解释一下原因?

这是在 web.xml 中的映射方式

  <filter>
    <filter-name>ErrorHandlerFilter</filter-name>
    <filter-class>com.fms.advocacy.filters.ErrorHandlerFilter</filter-class>
  </filter>
  <filter-mapping>
    <filter-name>ErrorHandlerFilter</filter-name>
    <url-pattern>/_ah/api/*</url-pattern>
  </filter-mapping>

这就是过滤器。

public class ErrorHandlerFilter implements Filter {
    private static final Logger log = Logger.getLogger(ErrorHandlerFilter.class.getName());

    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { 
            log.warning("Entered ErrorHandlerFilter!!"); 
    }
}

PS:我正在使用 Google Cloud Endpoint 对我的 API 进行编码

【问题讨论】:

  • 你的 servlet 过滤器是如何映射的?
  • 是的。我配置了 web.xml。它在我的本地开发服务器中运行,但不在实时 AppEngine 服务器中。
  • 我问的是 如何,而不是 web.xml 中的情况。
  • 对不起。我会更新它。
  • 更新了有问题的 web.xml 部分

标签: java google-app-engine google-cloud-endpoints servlet-filters


【解决方案1】:

问题在于&lt;url-pattern&gt;/_ah/api/*&lt;/url-pattern&gt;
在服务器中,url 更改为&lt;url-pattern&gt;/_ah/spi/*&lt;/url-pattern&gt;

现在它正在工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-23
    • 2010-10-15
    • 2017-01-13
    • 2019-02-11
    • 1970-01-01
    • 2015-04-18
    • 1970-01-01
    相关资源
    最近更新 更多