Java 何时使用FIX50sp2和FIXT11.xml?

Java 何时使用FIX50sp2和FIXT11.xml?,java,quickfix,fix-protocol,quickfixj,Java,Quickfix,Fix Protocol,Quickfixj,我是quickfix的新手,对quickfix版本FIX50sp2和FIXT11有点困惑 什么时候用什么? 我还了解了在使用FIX50SP2版本时使用FIXT11.xml,为什么不使用FIX50SP2.xml 我正在尝试向我的FIXT11.xml添加一个组TrdInstrmtLegGrp,重建jar,之前我使用的是quickfixj-messages-fix50sp2-2.0.0jar,但现在在对FIXT11.xml进行更改并添加jarquickfixj-messages-FIXT11-2.1.

我是quickfix的新手,对quickfix版本FIX50sp2和FIXT11有点困惑

什么时候用什么? 我还了解了在使用FIX50SP2版本时使用FIXT11.xml,为什么不使用FIX50SP2.xml

我正在尝试向我的FIXT11.xml添加一个组
TrdInstrmtLegGrp
,重建jar,之前我使用的是
quickfixj-messages-fix50sp2-2.0.0
jar,但现在在对
FIXT11.xml
进行更改并添加jar
quickfixj-messages-FIXT11-2.1.0-SNAPSHOT
后,它在
tradecapturerereport
上出现错误:

20180418-04:46:29:java.lang.VerifyError:操作数堆栈上的类型错误
例外情况详情:
地点:
quickfix/fixt11/TradeCaptureReport$NoLegs.get(Lquickfix/field/LegSide;)Lquickfix/field/LegSide@2:调用虚拟
原因:
类型“quickfix/field/LegSide”(当前帧,堆栈[1])不可分配给“quickfix/StringField”
当前帧:
密件抄送:@2
标志:{}
本地人:{'quickfix/fixt11/TradeCaptureReport$NoLegs','quickfix/field/LegSide'}
堆栈:{'quickfix/fixt11/TradeCaptureReport$NoLegs','quickfix/field/LegSide'}
字节码:
0x0000000:2a2b b600 0457 2bb0

这是my FIXT11.xml对于该组的外观,其顺序与我的API相似:

<component name='InstrmtLegGrp'>
  <group name='NoLegs' required='N'>
    <field name='LegSymbol' required='N'/>
    <field name='LegSecurityID' required='N'/>
    <field name='LegSecurityIdSource1' required='N'/>
    <field name='LegSecurityDesc' required='N'/>
    <field name='LegRatioQty' required='N'/>
    <field name='LegSide' required='N'/>
  </group>
</component>


或者我需要在FIX50sp2.xml中进行所需的组更改吗?

从fix5.0开始,Quickfixj引入了传输字典和应用程序字典的概念。 传输字典将包含所有与传输相关的管理消息,如心跳/登录/注销等,而Appdictionary将包含业务消息,如报价请求、交易捕获等


您可以查看QuickfixJ配置TransportDataDictionary和AppDataDictionary。(

感谢Hemant提供信息。这确实澄清了我一半的问题。