Google Pubsubを設定して、Google App Engine上で動作するサーブレットにメッセージをプッシュしようとしています。GoogleのpubsubからGoogleのアプリケーションエンジンで動作するサーブレットにプッシュするにはどうすればよいですか?
トピックに公開できます。私は、これが動作していることを知っているので、私はのgcloudを使用してプルサブスクリプションを経由して取得することができる午前:
gcloud alpha pubsub subscriptions pull projects/my-project/subscriptions/my-subscription
私も私のWebブラウザからアプリエンジンのサーブレットを呼び出すことができています。しかし何らかの理由で、pubsubがサーブレットを呼び出すように説得しているとは思えません。
私はサーブレットを正しく設定したと信じています。
<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>
私は、エラーの原因を示す可能性のあるすべてのログデータへのアクセス権を持っていないようですので、私は難易度のデバッグを持っています:
はここに私のweb.xmlファイルの関連する部分です。メッセージはエーテルに消えます。
pubsubトピックとサブスクリプションは、アプリケーションエンジンインスタンスと同じプロジェクト内にあります。
は、現在サポートされる唯一のエンドポイントが ウェブフックの配信を受け入れることができHTTPSサーバである:私には少し混乱して「Subscriber Guide」で
ことの一つは、この文です。
正確に「Webhook配信」が何を意味するのかは不明です。
webhookは次のように簡単に翻訳できます。PubSubプッシュメッセージを表示するには、公開URLが必要です。あなたが購読するときは、あなたの完全なURL( 'https:// myappid.appspot.com/path/to/some/servlet')をpushEndpointとして渡すだけです。 – konqi
テスト目的のために、auth-constraintを緩めて、着信(おそらく失敗したコール)をログで確認できます。 – konqi