Google App Engine推送任务始终返回405

时间:2017-01-10 17:40:18

标签: java google-app-engine scheduled-tasks

我已在Google App Engine上实施了推送任务队列。这是我调用任务队列的代码

 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设置为响应代码。知道为什么我的代码无效吗?

1 个答案:

答案 0 :(得分:0)

文档状态

  

TaskOptions.Builder构造函数具有将数据添加为有效负载的方法   作为参数的HTTP请求和添加到URL的参数   查询参数。

     

PARAMS

     

如果您正在使用POST方法,请不要指定params   有效负载,或者如果您使用的是GET方法,并且您已经包含了一个网址   查询参数。

您正在使用POST方法添加任务。

移除对.method(TaskOptions.Method.POST)

的调用