从Webhook请求中获取连接池,并在Google上使用操作



我试图从触发的webhook意图中使用相同的连接池到我的数据库中。我正在使用基本的样板(https://github.com/actions-oncon-google/dialogflow-webhook-boilerplate-java(。

每个触发意图的确会返回我的 ActionRequest,但是,它不包含 ServletContext。那么,如何使用actions-on-google-java库获得正常请求上下文?(https://github.com/actions-an-google/actions-on-google-java/blob/master/master/src/main/kotlin/kotlin/com/google/com/google/actions/api/api/actionrequest.kt(


我试图找到获取游泳池的其他方法,但是我对Java的经验有限。

// this is what i would like to achieve but ActionRequest is limited
@ForIntent("DB test")
public ActionResponse DbTest(ActionRequest request)
{
    ...
    DataSource pool = (DataSource) request.getServletContext().getAttribute("my-pool");
    try (Connection conn = pool.getConnection()) 
    { 
        // do database stuff
    }
    ...
}

我看不到ActionRequest提供ServletContext,因为它独立于处理请求的内容。

不太优雅,但是您可以在MyActionsApp中创建一种方法(因为您使用的是基本的样板(在调用handleRequest

之前,可以从请求(HttpServletRequest(设置ServletContext

创建一个也是一个选项的构造函数。

相关内容

最新更新