Apache camel Hapi API:如何修改消息确认ID行为
我正在使用以下代码生成消息ACK:Apache camel Hapi API:如何修改消息确认ID行为,apache-camel,hl7,hapi,Apache Camel,Hl7,Hapi,我正在使用以下代码生成消息ACK: public static Message process(Message in) throws Exception { ADTReceiverQueue.getInstance().submit(in); Message out = in.generateACK(); return out; } } 这将生成以下警告: FileBasedGenerator - Could
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存储在数据库中的生成器?Hapi提供了接口,以提供不同的ID生成实现。如果您查看该类的JavaDoc,您将发现一系列不同的ID生成选项,您当然也可以使用自己的
要真正设置ID生成器非常简单,只需在存储在上下文中的ParserConfiguration上设置它
HapiContext ctx = new DefaultHapiContext();
ctx.getParserConfiguration().setIdGenerator(new FileBasedHiLoGenerator());
如果您使用该上下文对象创建服务器,那么您就完成了,或者如果您没有这样做,您可以在生成ACK之前在收到的消息上显式地设置它
in.setParser(ctx.getPipeParser());
-詹姆斯谢谢你,这真是帮了大忙。