2014-04-08 11 views
5

Sto usando quickfix con collegamenti Python. Al momento di inizializzazione durante l'utilizzo FIX44.xml ottengo il seguente errore:quickfix - Configurazione fallita: <message> non contiene campi

Traceback (most recent call last): 
    File "C:\dev\my_proj\quickfix_app.py", line 1227, in start_app 
    initiator = fix.SocketInitiator(self, storeFactory, settings, logFactory) 
    File "C:\Users\Me\virtual_environments\my_env\lib\site-packages\quickfix.py", line 34432, in __init__ 
    SocketInitiatorBase.__init__(self, application, storeFactory, settings, logFactory) 
    File "C:\Users\Me\virtual_environments\my_env\lib\site-packages\quickfix.py", line 34316, in __init__ 
    this = _quickfix.new_SocketInitiatorBase(*args) 
ConfigError: Configuration failed: FIX44.xml: Configuration failed: <message> contains no fields 

L'errore deriva dal l'ultima riga nel codice seguente:

settings  = fix.SessionSettings('FIX44.xml') 
storeFactory = fix.FileStoreFactory(settings) 
logFactory = fix.ScreenLogFactory(settings) 
initiator = fix.SocketInitiator(self, storeFactory, settings, logFactory) 

ottengo lo stesso errore per l'utilizzo di FIX43.xml, tuttavia FIX42.xml funziona bene . Questi file xml controllano usando un validatore XML. Poiché sto utilizzando file xml di esempio dal sito di installazione rapida, dubito che il problema riguardi i file.
Cosa potrebbe causare questo errore?

risposta

10

Incredibilmente, quickfix non è compatibile con xml dal sito di installazione rapida. Ho trovato la seguente riga in FIX44.xml:

<message name='XMLnonFIX' msgcat='admin' msgtype='n' /> 

Che ha davvero nessun campo. Poiché non ho bisogno di questo messaggio, ho semplicemente rimosso la linea e funziona.