Я новичок как в quickfix, так и в java.
Обычно, когда я хочу удалить поле в быстром сообщении, я использую метод removeField с тегом в качестве аргумента, но, похоже, это не работает с двумя автоматически сгенерированными полями: BodyLength (тег 9) и CheckSum (тег 10). ).
Например, я создал сообщение, затем печатаю.
System.out.println(message)
дает
8=FIX.4.29=8635=149=WFSComp23452=20130613-21:45:22.28256=ClientComp1234109=по умолчанию112=по умолчанию10=067
затем я удаляю поле, скажем, номер тега 8, со следующим
message.getHeader().removeField(8);
и снова распечатать, я получаю
9=7435=149=WFSComp23452=20130613-22:06:32.81956=ClientComp1234112=по умолчанию10=105
где поле удалено, но когда я пытаюсь удалить тег 9 таким же образом:
message.getHeader().removeField(9);
вывод, когда я печатаю, дает тот же код без удаления поля:
9=7435=149=WFSComp23452=20130613-22:06:32.81956=ClientComp1234112=default10=105
поле 9 все еще там!
Я предполагаю, что это потому, что quickfix автоматически генерирует длину тела, но как ее удалить? Спасибо.
Ссылки на быстрый ремонт: