Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache camel Hapi API:如何修改消息确认ID行为_Apache Camel_Hl7_Hapi - Fatal编程技术网

Apache camel Hapi API:如何修改消息确认ID行为

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

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

Hapi提供了接口,以提供不同的ID生成实现。如果您查看该类的JavaDoc,您将发现一系列不同的ID生成选项,您当然也可以使用自己的

要真正设置ID生成器非常简单,只需在存储在上下文中的ParserConfiguration上设置它

    HapiContext ctx = new DefaultHapiContext();
    ctx.getParserConfiguration().setIdGenerator(new FileBasedHiLoGenerator());
如果您使用该上下文对象创建服务器,那么您就完成了,或者如果您没有这样做,您可以在生成ACK之前在收到的消息上显式地设置它

    in.setParser(ctx.getPipeParser());

-詹姆斯

谢谢你,这真是帮了大忙。