2017-01-10 6 views
0

Google App Engineでプッシュタスクキューを実装しました。これは私がGoogle App Engineプッシュタスクは常に405を返します

Queue queue = QueueFactory.getDefaultQueue(); 
queue.add(TaskOptions.Builder.withUrl("/tasks/myTask").param("myparam", Long.toString(myparam)).retryOptions(RetryOptions.Builder.withTaskRetryLimit(1)).method(TaskOptions.Method.POST)) ; 

タスクキューを呼び出し、これはタスク

protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { 
     super.doPost(req, resp); 

     String param = req.getParameter("myparam") ; 

     resp.setStatus(HttpServletResponse.SC_OK); 

     resp.setContentType("text/plain"); 
     resp.getWriter().println("dummy"); 
     resp.getWriter().flush(); 
    } 

のコードである。しかし、私は私のタスクは、ステータスコード405とタスクを返すログで見ることができますどのようにコードであります私のコードでは、レスポンスコードとして値200を設定します。なぜ私のコードがうまくいかないのか?

答えて

0

ドキュメントの状態

TaskOptions.Builderコンストラクタは、HTTPリクエストのペイロード として、及び クエリパラメータとしてURLに追加されるパラメータとしてデータを追加する方法を有しています。あなたは ペイロードと一緒にPOSTメソッドを使用している場合

のparams

はのparamsを指定しないでください、またはあなたがGETメソッドを使用している場合、あなたは、クエリパラメータでURL を含めました。

タスクをPOSTメソッドで追加しています。

.method(TaskOptions.Method.POST)

への呼び出しを削除します。
関連する問題