apache.servicemix.bundles.quickfix — при попытке создать автономный объект NewOrderSingle возникает исключение

Я пытаюсь написать класс для преобразования доменных POJO в сообщения QuickFixJ. Когда я пытаюсь создать новое сообщение заказа так:

quickfix.fix44.NewOrderSingle order = new quickfix.fix44.NewOrderSingle();

В журналах возникает следующее исключение:

Exception Details:
Location:
  quickfix/fix44/NewOrderSingle.get(Lquickfix/field/SettlType;)Lquickfix/field/SettlType; @2: invokevirtual
Reason:
Type 'quickfix/field/SettlType' (current frame, stack[1]) is not assignable to 'quickfix/CharField'
Current Frame:
  bci: @2
  flags: { }
  locals: { 'quickfix/fix44/NewOrderSingle', 'quickfix/field/SettlType' }
  stack: { 'quickfix/fix44/NewOrderSingle', 'quickfix/field/SettlType' }
Bytecode:
  0000000: 2a2b b600 3057 2bb0                    

Кажется, эта ошибка возникает при попытке объединить две версии Fix Message Fields вместе, но, насколько мне известно, я этого не делаю. Я использую тот же код, что и в модульные тесты QuickFixJ Вариант того же кода работает в в этом примере, это происходит после того, как соединение установлено через объект-инициатор. Я использую apache.servicemix.bundles.quickfix вместо QuickFix-all.jar, потому что он содержит некоторые поля, которые мне нужно добавить в другие сообщения.

Я не уверен, почему я не могу вызвать простой конструктор объекта. Конструктор в банке выглядит следующим образом:

public NewOrderSingle()
{
   getHeader().setField(new MsgType("D"));
}

Есть ли другая возможная причина этой ошибки, о которой я не подумал? я в тупике


person a.hrdie    schedule 13.08.2015    source источник
comment
Это может быть полезно: stackoverflow.com/questions /29967804/   -  person shargors    schedule 13.08.2015
comment
Спасибо за предложение, я проверил этот вопрос ранее. Это та же ошибка, но я не пытаюсь объединить две версии сообщения FIX вместе. Все, что я пытаюсь сделать, это создать объект типа fix44.message, но я не могу вызвать конструктор без возникновения этой ошибки. Я импортировал необходимые зависимости из примера проекта, который работает. Я просто не могу понять, что вызывает исключение   -  person a.hrdie    schedule 13.08.2015


Ответы (1)


У меня была эта проблема, и мне пришлось вернуться к QuickFIX 1.5.2.

Сообщение quickfixj factory создает неверный тип в стеке операндов, используя qf 1.6.0 и java 1.8.0_45

Согласно группе пользователей, это известная проблема. Смотрите прикрепленный вопрос...

person rupweb    schedule 14.08.2015