我正在尝试配置 google pubsub 以将消息推送到在 google 应用程序引擎上运行的 servlet。
我能够发布到该主题。我知道这是有效的,因为我可以使用 gcloud 通过拉取订阅进行检索:
gcloud alpha pubsub subscriptions pull projects/my-project/subscriptions/my-subscription
我还可以从我的 Web 浏览器调用应用程序引擎上的 servlet。但出于某种原因,我似乎无法说服 pubsub 在应该调用 servlet 时调用它。
我相信我已经正确配置了 servlet。
这是我的 web.xml 文件的相关部分:
<servlet>
<servlet-name>dataExtracted</servlet-name>
<servlet-class>com.alpine.servlets.CatchEventDataExtractedServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>dataExtracted</servlet-name>
<url-pattern>/_ah/push-handlers/dataExtracted</url-pattern>
</servlet-mapping>
<security-constraint>
<web-resource-collection>
<web-resource-name>push-handlers</web-resource-name>
<url-pattern>/_ah/push-handlers/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>admin</role-name>
</auth-constraint>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
我在调试时遇到了困难,因为我似乎无法访问任何可能指示错误来源的日志记录数据。消息只是消失在以太中。
pubsub 主题和订阅与应用引擎实例位于同一个项目中。
“订阅者指南”中让我有点困惑的一件事是这样的声明:
目前唯一受支持的端点是可以接受 Webhook 传递的 HTTPS 服务器。
我不确定“Webhook 交付”到底是什么意思。