0

我正在使用以下代码生成消息 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 存储在数据库中的生成器?

4

1 回答 1

2

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

要实际设置 ID 生成器很容易,您只需在存储在上下文中的 ParserConfiguration 上设置它。

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

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

    in.setParser(ctx.getPipeParser());

-詹姆士

于 2014-12-17T16:27:11.890 回答