【问题标题】:Hapi API: how to modify the Message ACK ID behaviourHapi API:如何修改消息 ACK ID 行为
【发布时间】:2014-12-18 00:27:11
【问题描述】:

我正在使用以下代码生成消息 ACK:

public static Message process(Message in) throws Exception {     
        ADTReceiverQueue.getInstance().submit(in);
        Message out =  in.generateACK();
        return out;
    }
}

这会产生以下警告:

FileBasedGenerator         - Could not write ID to file /var/lib/tomcat7/./id_file, going to use internal ID generator. /var/lib/tomcat7/./id_file (Permission denied)

我显然可以设置权限来删除警告,但是我想知道如何告诉 Hapi 使用内部 ID 生成器或可能使用 ID 存储在数据库中的生成器?

【问题讨论】:

    标签: apache-camel hl7 hapi


    【解决方案1】:

    HAPI 提供IDGenerator 接口来提供不同的ID 生成实现。如果您查看该类的 JavaDoc,您会发现许多用于生成 ID 的不同选项,您当然也可以自己推出。

    要实际设置 ID 生成器很简单,您只需在存储在上下文中的 ParserConfiguration 上进行设置。

        HapiContext ctx = new DefaultHapiContext();
        ctx.getParserConfiguration().setIdGenerator(new FileBasedHiLoGenerator());
    

    如果您使用该上下文对象来创建您的服务器,那么您就完成了,或者如果您不这样做,您可以在生成 ACK 之前在收到的消息上显式设置它。

        in.setParser(ctx.getPipeParser());
    

    -詹姆斯

    【讨论】:

    • 谢谢你,这是一个真正的帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-04
    • 1970-01-01
    • 2016-04-21
    • 2021-04-27
    相关资源
    最近更新 更多