Я получаю сообщение об ошибке «Условно обязательное поле отсутствует», хотя я уверен, что это поле существует.
58=Conditionally Required Field Missing, field=55
Версии:
QuickFixJ 2.1.0
ИСПРАВЛЕНИЕ 4.4
Вот сообщение FIX, которое я отправляю (с фиктивными значениями и несколькими удаленными полями для ясности)
8=FIX.4.4
9=709
35=R
34=4
49=TARGET
56=ME
11=myClOrdID
131=myQuoteReqID
146=myNoRelatedSym
55=mySymbol // field missing
167=mySecurityType // field missing
Вот код вызова:
String symbol = quoteRequest.getField(new StringField(55)).getValue();
Я также пробовал:
String symbol = quoteRequest.getString(55);
Вот мой словарь данных:
<field number="55" name="Symbol" type="STRING"/>
Я понимаю, что поле символа больше не является частью спецификации QuoteRequest
FIX для 4.4 (хотя оно было в более ранних версиях, таких как 4.0), однако наверняка есть способы получить настраиваемые поля? Я не могу контролировать сообщение QuoteRequest
, которое я получаю.
Я всегда могу сам разобрать сообщение, используя toString()
, но это, в первую очередь, противоречит цели использования quickfixj.
Есть идеи?