编辑quick-fix消息后,我试图重建ExecutionReport jar。

但是它给出了一个错误:

  [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.
    8.0:compile (default-compile) on project quickfixj-examples-executor: Compilatio
    n failure: Compilation failure:
    [ERROR] /C:/Users/admin/Desktop/QuickFIxJarMaker/quickfixj-master/quickfixj-mast
    er/quickfixj-examples/executor/src/main/java/quickfix/examples/executor/Applicat
    ion.java:[272,49] no suitable constructor found for ExecutionReport(quickfix.fie
    ld.OrderID,quickfix.field.ExecID,quickfix.field.ExecTransType,quickfix.field.Exe
    cType,quickfix.field.OrdStatus,quickfix.field.Symbol,quickfix.field.Side,quickfi
    x.field.LeavesQty,quickfix.field.CumQty,quickfix.field.AvgPx)
    [ERROR] constructor quickfix.fix42.ExecutionReport.ExecutionReport() is not appl
    icable
    [ERROR] (actual and formal argument lists differ in length)
    [ERROR] constructor quickfix.fix42.ExecutionReport.ExecutionReport(quickfix.fiel
    d.OrderID,quickfix.field.ExecType,quickfix.field.OrdStatus,quickfix.field.Leaves
    Qty,quickfix.field.CumQty,quickfix.field.AvgPx) is not applicable
    [ERROR] (actual and formal argument lists differ in length)
    [ERROR] /C:/Users/admin/Desktop/QuickFIxJarMaker/quickfixj-master/quickfixj-mast
    er/quickfixj-examples/executor/src/main/java/quickfix/examples/executor/Applicat
    ion.java:[280,62] no suitable constructor found for ExecutionReport(quickfix.fie
    ld.OrderID,quickfix.field.ExecID,quickfix.field.ExecTransType,quickfix.field.Exe
    cType,quickfix.field.OrdStatus,quickfix.field.Symbol,quickfix.field.Side,quickfi
    x.field.LeavesQty,quickfix.field.CumQty,quickfix.field.AvgPx)
    [ERROR] constructor quickfix.fix42.ExecutionReport.ExecutionReport() is not appl
    icable
    [ERROR] (actual and formal argument lists differ in length)
    [ERROR] constructor quickfix.fix42.ExecutionReport.ExecutionReport(quickfix.fiel
    d.OrderID,quickfix.field.ExecType,quickfix.field.OrdStatus,quickfix.field.Leaves
    Qty,quickfix.field.CumQty,quickfix.field.AvgPx) is not applicable
    [ERROR] (actual and formal argument lists differ in length)


所有字段都在FIX42.xml中定义。

<message name='ExecutionReport' msgcat='app' msgtype='8'>
    <field name='OrderID' required='Y' />
    <field name='SecondaryOrderID' required='N' />
    <field name='SecondaryClOrdID' required='N' />
    <field name='SecondaryExecID' required='N' />
    <field name='ClOrdID' required='N' />
    <field name='OrigClOrdID' required='N' />
    <field name='TTClOrdID' required='N' />
    <group name='NoPartyIDs' required='N'>
        <field name='PartyID' required='N' />
        <field name='PartyRole' required='N' />
        <field name='PartyRoleQualifier' required='N' />
        <field name='PartyIDSource' required='N' />
    </group>
    <field name='ExecID' required='N' />
    <field name='ExecTransType' required='N' />
    <field name='ExecRefID' required='N' />
    <field name='ExecType' required='Y' />
    <field name='ExecInst' required='N' />
    <field name='OrdStatus' required='Y' />
    <field name='OrdRejReason' required='N' />
    <field name='ExecRestatementReason' required='N' />
    <field name='RequestID' required='N'/>
    <field name='Account' required='N' />
    <field name='Symbol' required='N' />
    <field name='SecurityDesc' required='N' />
    <field name='Product' required='N' />
    <field name='SecurityID' required='N' />
    <field name='SecurityType' required='N' />
    <field name='SecuritySubType' required='N' />
    <field name='MaturityMonthYear' required='N' />
    <field name='MaturityDate' required='N' />
    <field name='MaturityDay' required='N' />
    <field name='PutOrCall' required='N' />
    <field name='IDSource' required='N' />
    <field name='StrikePrice' required='N' />
    <field name='OptAttribute' required='N' />
    <field name='SecurityExchange' required='N' />
    <field name='ExDestination' required='N' />
    <field name='CFICode' required='N' />
    <field name='Currency' required='N' />
    <field name='DeliveryTerm' required='N' />
    <field name='DeliveryDate' required='N' />
    <field name='Side' required='N' />
    <field name='OrderQty' required='N' />
    <field name='OrdType' required='N' />
    <field name='Price' required='N' />
    <field name='StopPx' required='N' />
    <field name='TimeInForce' required='N' />
    <field name='ExpireDate' required='N' />
    <field name='ClearingFirm' required='N' />
    <field name='ClearingAccount' required='N' />
    <field name='CustomerAccountRefID' required='N' />
    <field name='LastShares' required='N' />
    <field name='LastPx' required='N' />
    <field name='LeavesQty' required='Y' />
    <field name='CumQty' required='Y' />
    <field name='AvgPx' required='Y' />
    <field name='TradeDate' required='N' />
    <field name='TransactTime' required='N' />
    <field name='MinQty' required='N' />
    <field name='OpenClose' required='N' />
    <field name='DisplayQty' required='N'/>
    <field name='RefreshQty' required='N'/>
    <field name='Text' required='N' />
    <field name='MultiLegReportingType' required='N' />
    <field name='ManualOrderIndicator' required='N' />
    <field name='ExchCred' required='N' />
    <field name='OrderCapacity' required='N' />
    <field name='CustOrderCapacity' required='N' />
    <field name='ContingencyType' required='N' />
    <field name='TTID' required='N' />
    <field name='TrdType' required='N' />
    <field name='TrdMatchID' required='N' />
    <field name='CrossID' required='N' />
    <field name='CrossType' required='N' />
    <field name='TradeReportID' required='N' />
    <field name='AOTCPreventionActionType' required='N'/>
    <field name='TotalNumOrders' required='N'/>
    <field name='BrokerID' required='N'/>
    <field name='CompanyID' required='N'/>
    <field name='LastParPx' required='N'/>
    <field name='HandlInst' required='N' />
    <field name='StagedOrderMsg' required='N' />
    <field name='StagedOrderOwner' required='N' />
    <field name='StagedOrderStatus' required='N' />
    <field name='ExternalSource' required='N' />
    <field name='ContractYearMonth' required='N' />
    <group name='NoSecurityAltID' required='N'>
        <field name='SecurityAltID' required='N' />
        <field name='SecurityAltIDSource' required='N' />
    </group>
    <group name='NoStrategyParameters' required='N'>
        <field name='StrategyParameterName' required='N' />
        <field name='StrategyParameterType' required='N' />
        <field name='StrategyParameterValue' required='N' />
    </group>
    <field name='AggressorIndicator' required='N' />
    <field name='EffectiveTime' required='N' />
    <field name='ExpireTime' required='N' />
    <field name='TargetStrategyName' required='N' />
    <field name='TargetStrategyType' required='N' />
    <field name='BracketOrderType' required='N' />
    <field name='BracketStopLimitOffset' required='N' />
    <field name='ChildTIF' required='N' />
    <field name='DiscVal' required='N' />
    <field name='DiscValType' required='N' />
    <field name='ETimeAct' required='N' />
    <field name='Interval' required='N' />
    <field name='IsTrlTrg' required='N' />
    <field name='LeftoverAction' required='N' />
    <field name='LeftoverTicks' required='N' />
    <field name='LimitPriceType' required='N' />
    <field name='LimitTicksAway' required='N' />
    <field name='OcoStopTriggerPrice' required='N' />
    <field name='ProfitTarget' required='N' />
    <field name='StopLimitOffset' required='N' />
    <field name='StopOrderType' required='N' />
    <field name='StopTarget' required='N' />
    <field name='TriggerPriceType' required='N' />
    <field name='TriggerTicksAway' required='N' />
    <field name='TriggerType' required='N' />
    <field name='WithATickType' required='N' />
    <field name='WithATick' required='N' />
    <field name='AllocID' required='N' />
    <field name='RefID' required='N' />
    <group name='NoLegs' required='N'>
        <field name='LegSymbol' required='N' />
        <field name='LegSecurityDesc' required='N' />
        <field name='LegProduct' required='N' />
        <field name='LegSecurityID' required='N' />
        <field name='LegIDSource' required='N' />
        <field name='LegSecurityType' required='N' />
        <field name='LegSecuritySubType' required='N' />
        <field name='LegMaturityMonthYear' required='N' />
        <field name='LegMaturityDate' required='N' />
        <field name='LegMaturityDay' required='N' />
        <field name='LegStrikePrice' required='N' />
        <field name='LegPutOrCall' required='N' />
        <field name='LegOptAttribute' required='N' />
        <field name='LegSecurityExchange' required='N' />
        <field name='LegExDestination' required='N' />
        <field name='LegCFICode' required='N' />
        <field name='LegSide' required='N' />
        <field name='LegRatioQty' required='N' />
        <field name='LegCurrency' required='N' />
        <field name='LegDeliveryTerm' required='N' />
        <field name='LegDeliveryDate' required='N' />
        <field name='LegContractYearMonth' required='N' />
        <field name='LegQty' required='N' />
        <field name='LegRefID' required='N' />
        <field name='LegPrice' required='N' />
        <field name='LegLastPx' required='N' />
        <field name='LegAllocID' required='N' />
        <group name='NoLegSecurityAltID' required='N'>
            <field name='LegSecurityAltID' required='N' />
            <field name='LegSecurityAltIDSource' required='N' />
        </group>
        <group name='LegNoFills' required='N'>
            <field name='LegFillExecID' required='N' />
            <field name='LegFillPx' required='N' />
            <field name='LegFillQty' required='N' />
            <field name='LegFillTradingVenueRegulatoryTradeID' required='N' />
            <field name='LegFillLastLiquidityIndicator' required='N' />
        </group>
    </group>
    <group name='NoLinks' required='N'>
        <field name='LinkID' required='Y' />
        <field name='LinkType' required='Y' />
    </group>
    <group name='NoFills' required='N'>
        <field name='FillExecID' required='N' />
        <field name='FillPx' required='N' />
        <field name='FillQty' required='N' />
        <field name='FillTradingVenueRegulatoryTradeID' required='N' />
        <field name='FillLastLiquidityIndicator' required='N' />
        <field name='FillYieldType' required='N' /> <!-- applies to fills imported from CME drop copy service only -->
    </group>
    <field name='ClearingAccountOverride' required='N' />
    <field name='DropCopyOrder' required='N' />
    <field name='OrderOrigination' required='N' />
    <field name='TrdRegPublicationReason' required='N' />
    <field name='TradingVenueRegulatoryTradeID' required='N' />
    <field name='LastLiquidityIndicator' required='N' />
    <group name='NoOrderAttributes' required='N'>
        <field name='OrderAttributeType' required='N' />
        <field name='OrderAttributeValue' required='N' />
    </group>
    <field name='OrderIDGUID' required='N' />
    <field name='TextTT' required='N' />
    <field name='TextA' required='N' />
    <field name='TextB' required='N' />
    <field name='TextC' required='N' />
    <field name='TimeReceivedFromExchange' required='N' />
    <field name='EchoDC_01' required='N' />
    <field name='EchoDC_02' required='N' />
    <field name='EchoDC_03' required='N' />
    <field name='EchoDC_04' required='N' />
    <field name='EchoDC_05' required='N' />
    <field name='EchoDC_06' required='N' />
    <field name='EchoDC_07' required='N' />
    <field name='EchoDC_08' required='N' />
    <field name='EchoDC_09' required='N' />
    <field name='EchoDC_10' required='N' />
    <field name='SelfMatchPreventionID' required='N' />
    <field name='SMPInstruction' required='N' />
    <field name='OrderSource' required='N' />
    <field name='UniqueExecID' required='N' />
    <field name='SpreadLegRatioQty' required='N' />
    <field name='LastMkt' required='N' />
    <field name='AccountRiskGroup' required='N' />
    <field name='MlegHeadExecId' required='N' />
    <field name='OrdStatusReqID' required='N' />
    <field name='TTCustomerName' required='N' />
    <field name='AccountID' required='N' />
    <field name='UserID' required='N' />
    <field name='InvestmentDecision' required='N' />
    <field name='ExecutionDecision' required='N' />
    <field name='ClientIDCode' required='N' />
    <field name='RequestTime' required='N' />
</message>


谢谢

最佳答案

quickfixj-examples-executor期望FIX4.2 ExecutionReport是默认的FIX4.2。例如。好像您更改了ExecIDExecTransType并不是必需的。重新生成代码后,将没有包含ExecIDExecTransType作为参数的构造函数。因此,生成错误。
因此,您既需要修改示例项目的代码,也可以将它们从构建中排除。

07-24 03:40