2016-05-18 4 views
0

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配信」が何を意味するのかは不明です。

+1

webhookは次のように簡単に翻訳できます。PubSubプッシュメッセージを表示するには、公開URLが必要です。あなたが購読するときは、あなたの完全なURL( 'https:// myappid.appspot.com/path/to/some/servlet')をpushEndpointとして渡すだけです。 – konqi

+1

テスト目的のために、auth-constraintを緩めて、着信(おそらく失敗したコール)をログで確認できます。 – konqi

答えて

0

pubsubで使用できるログはありませんでしたが、ログはアプリエンジンで利用できました。

私の特定のケースでは、pubsubがそこになかったリソースに繰り返しアクセスしようとすると、405エラーが発生しました。

私はdoPost()の代わりにdoGet()を実装していたので、私のサーブレットはpubsubからプッシュを受け取ることができませんでした。

関連する問題