首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RESTHeart挂钩-未唤醒

RESTHeart挂钩-未唤醒
EN

Stack Overflow用户
提问于 2017-11-05 03:42:43
回答 1查看 78关注 0票数 0

我添加了我的自定义代码,如下所示

代码语言:javascript
复制
public class StatusUpdateHook implements Hook {

    private static final Logger LOGGER = LoggerFactory.getLogger(StatusUpdateHook.class);

    @Override
    public boolean hook(HttpServerExchange exchange, RequestContext context, BsonValue args, BsonDocument confArgs) {
        LOGGER.info("Hook is Called");
        return true;
    }

    @Override
    public boolean doesSupportRequests(RequestContext rc) {
        return true;
    }

}

在我的配置中也添加了下面这行:

代码语言:javascript
复制
- group: hooks
      interface: org.restheart.metadata.hooks.Hook
      singletons:
        - name: snooper
          class: org.restheart.metadata.hooks.SnooperHook
        - name: statusChecker
          class: com.techmaddy.rh.hook.StatuspdateHook

但是我仍然不能将它打印到日志中,我确信我错过了将钩子添加到集合中的部分。我们如何添加它,即我们如何从文档中添加“集合元数据属性钩子允许声明要应用于涉及集合及其文档的请求的钩子”。

EN

回答 1

Stack Overflow用户

发布于 2017-11-07 17:27:13

您已经创建了钩子类,并在配置文件中为其指定了名称。为了将其应用于您的集合,您需要定义hooks集合属性。

PATCH /db/coll { "hooks" : [ { "name": "statusChecker", "args": null } ]}

既然集合coll具有带有钩子的hooks数组,RESTHeart将在涉及该集合的请求上调用它。

请注意,默认的日志配置仅打印出org.restheart的子包中classed的消息。因此,要么更改配置(定义系统属性logback.configurationFile,请参见https://logback.qos.ch/manual/configuration.html),要么按如下方式实例化记录器:

private static final Logger LOGGER = LoggerFactory.getLogger("org.restheart.custom.StatuspdateHook");

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47114870

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档