Хотя я не мог повторить сообщения FIX в моей настройке, я смог «повторить» их, используя модульные тесты и используя свой собственный простой приемщик с примерами из руководства QuickFIX / J .
Я создал простой акцептор с «FooApplication» для получения сообщений и ответа / насмешки над некоторыми QuoteRequests
public static void main(String[] args) throws Exception {
// FooApplication is your class that implements the Application interface
FooApplication application = new FooApplication();
SessionSettings settings = new SessionSettings(new FileInputStream(fileName));
MessageStoreFactory storeFactory = new FileStoreFactory(settings);
LogFactory[] logFactories = new LogFactory[] {new FileLogFactory(settings)};
LogFactory logFactory = new CompositeLogFactory(logFactories);
MessageFactory messageFactory = new DefaultMessageFactory();
Acceptor acceptor = new SocketAcceptor(application, storeFactory, settings, logFactory, messageFactory);
acceptor.start();
}
Затем, используя модульные тесты, я запускаю FooInitiator и вызываю, например, sendLogout () из FooClient
public class FooClient extends quickfix.fix42.MessageCracker implements quickfix.Application {
// sendQuoteRequest
// sendNewOrderSingle
private boolean sendMessage(Message message) {
boolean result = false;
try {
result = Session.sendToTarget(message, session);
} catch (SessionNotFound e) {
logger.error("FooApplication SessionNotFound", e);
result = false;
}
return result;
}
public boolean sendLogout() {
return sendMessage(new Logout());
}
}
Если вы просматриваете журналы сообщений FIX, возможно, вы захотите проверить, не знаете ли вы HermesJMS его бесплатный и открытый исходный код.