0

我正在使用编年史队列 v4 将序列化对象写入队列。但我一直低于异常

线程“CLF-1”java.lang.AssertionError 中的异常:您不能将标题放在标题中,请检查您是否没有嵌套文档。在 net.openhft.chronicle.wire.AbstractWire.writeHeader(AbstractWire.java:228) 在 net.openhft.chronicle.queue.impl.single.StoreRecovery.writeHeader(StoreRecovery.java:28) 在 net.openhft.chronicle.queue .impl.single.SingleChronicleQueueStore.writeHeader(SingleChronicleQueueStore.java:298) 在 net.openhft.chronicle.queue.impl.single.SingleChronicleQueueExcerpts$StoreAppender.writingDocument(SingleChronicleQueueExcerpts.java:232) 在 net.openhft.chronicle.wire.MarshallableOut .writeDocument(MarshallableOut.java:68)

这就是我的代码的样子

SingleChronicleQueue queue = SingleChronicleQueueBuilder.binary(queueFullPath).build();
ExcerptAppender queueWriter = queue.acquireAppender();
UserStat stat=new UserStat();//this is my object
byte[] bytes = convertObjectToBytes(stat);//custom serialization to convert java object to byte array
queueWriter.writeDocument(w -> w
    .getValueOut().bytes(bytes));

.cq4 文件中没有写入任何内容。但是我看到每次调用 writeDocument() 方法时最后修改时间都会改变。

4

1 回答 1

0

很可能(根据堆栈跟踪)您正在写入的文件已损坏。您需要清理它并重试(看来您使用的是相当旧的版本)。尝试使用新版本的 Chronicle Queue 进行测试 - 解决的可能性很高。

于 2018-11-06T10:58:39.343 回答