Google App引擎没有处理程序与此网址匹配

时间:2018-10-29 10:51:17

标签: java google-app-engine cron google-cloud-platform

我要从我在Google App Engine上设置的cron作业中调用firebase Http请求。cron作业已成功部署,但未触发firebase url,因为我认为我在web.xml文件中缺少某些设置或其他文件中。 在日志查看器中,我看到此类信息“没有处理程序匹配此URL” 任何人都有任何想法。 以下是我的cron.xml设置

app.post('/signup', async (req, res) => {
        try {
            let created = await User.findOrCreate({
                where: { email: req.body.userEmail },
                defaults: {
                    pass: req.body.userPass
                }
            }).spread((user, created) => {
                return created;
            })
            if(created) {
                res.json(user.email)
            }
        } catch (err) {
            console.log(`ERROR! => ${err.name}: ${err.message}`)
            res.status(500).send(err.message)
        }
    }
})

这是我的web.xml设置

<?xml version="1.0" encoding="UTF-8"?>
<cronentries>
    <cron>
        <url>/cron</url>
        <target>beta</target>
        <description>Keymitt cron job</description>
        <schedule>every 1 minutes</schedule>
    </cron>
</cronentries>

这是我关联的WebServlet

<?xml version="1.0" encoding="utf-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
         http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1">
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
  <servlet>
    <servlet-name>HelloAppEngine</servlet-name>
    <servlet-class>com.company.HelloAppEngine</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>HelloAppEngine</servlet-name>
    <url-pattern>/hello</url-pattern>
  </servlet-mapping>

  <servlet>
    <servlet-name>KeymittCron</servlet-name>
    <servlet-class>com.company.KeymittCron</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>KeymittCron</servlet-name>
    <url-pattern>/cron</url-pattern>
  </servlet-mapping>

</web-app>

这是我的记录仪信息 {{3}}

1 个答案:

答案 0 :(得分:0)

我的回答可能与您有关-Google Cloud App Engine cron job - not calling the service

基本上,您可能在appengine-web.xml中需要它:

<service>beta</service>

您在<target>中指定的cron.xml必须与您在<service>中定义的appengine-web.xml匹配