为啥实时 AppEngine 没有调用我的 servlet 过滤器?
Posted
技术标签:
【中文标题】为啥实时 AppEngine 没有调用我的 servlet 过滤器?【英文标题】: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 部分 【参考方案1】:问题在于<url-pattern>/_ah/api/*</url-pattern>
。
在服务器中,url 更改为<url-pattern>/_ah/spi/*</url-pattern>
现在它正在工作。
【讨论】:
以上是关于为啥实时 AppEngine 没有调用我的 servlet 过滤器?的主要内容,如果未能解决你的问题,请参考以下文章
为啥google appengine部署需要几分钟才能更新服务
为啥我的数据没有在 Flutter for web 中使用 api 从实时数据库中检索