【问题标题】:How do you configure a servlet filter in Google App Engine's app.yaml file?如何在 Google App Engine 的 app.yaml 文件中配置 servlet 过滤器?
【发布时间】:2020-12-28 04:41:26
【问题描述】:

我正在编写一个要部署在 Google App Engine 上的 Kotlin 应用程序。我正在使用 Gradle 插件对 GAE 进行实际部署。一切都运行良好;我成功地将一个 hello-world 应用程序部署到 GAE。

但是,现在我需要添加一个过滤器,特别是 com.googlecode.objectify.ObjectifyFilter。但是一旦我将此过滤器添加到我的 app.yaml 文件中,该应用程序将不再部署。相反,它给了我一个错误,告诉我“过滤器”不是预期的属性。

这是我的 app.yaml 文件:

runtime: java11
handlers:
- url: /*
  filter: com.googlecode.objectify.ObjectifyFilter

这是错误:

> Task :webservice:appengineDeployAll FAILED
ERROR: (gcloud.app.deploy) An error occurred while parsing file: [C:\Users\mathew\Documents\fooApp\webservice\build\staged-app\app.yaml]
Unexpected attribute 'filter' for object of type URLMap.
  in "C:\Users\mathew\Documents\fooApp\webservice\build\staged-app\app.yaml", line 4, column 11

我做错了什么?如何在 GAE 应用中配置过滤器?

【问题讨论】:

    标签: java spring-boot google-app-engine servlet-filters objectify


    【解决方案1】:

    您必须在部署描述符文件中指定过滤器类。然后您可以在该过滤器类中设置您的标题。 Here您可以找到有关 App Engine 中过滤器的更多详细信息。

    需要记住的是,这些过滤器不适用于您的 css 和 js.files 的静态资源请求。

    【讨论】:

    • 那么,过滤器是在web.xml中配置的,而不是在app.yaml中?我需要 app.yaml 和 web.xml?
    • 如果您使用的是 Java,可以。正如您在cloud.google.com/appengine/docs/standard/java/config/webxml 看到的那样,文件用于确定 URL 如何映射到 servlet、哪些 URL 需要身份验证以及其他信息(作为您要使用的过滤器)。在共享链接中,您可以找到有关该文件的更多详细信息
    • 我原以为是其中之一。感谢您的澄清。
    猜你喜欢
    • 2013-11-02
    • 2022-01-24
    • 2011-04-23
    • 1970-01-01
    • 2019-03-19
    • 2014-10-10
    • 1970-01-01
    • 2011-05-18
    • 2020-03-19
    相关资源
    最近更新 更多