2016-06-28 2 views
0

Я развиваю что-то с QuickFixJ, и я встречаю странную ситуацию. У нас есть заглушка для имитации акцептора fix, локально в моей среде работает. Я могу отправлять/получать сообщения, которые мы используем тип пользовательского сообщения. Quickfixj jar регенерируется на основе нового словаря, новых типов сообщений ...QuickFixJ - quickfix.UnsupportedMessageType: null (Websphere)

Пример сообщения из моего env. связи между FIX инициатора и FIX_STUB (акцептор):

16:49:58.475 [http-8080-4] INFO quickfixj.msg.outgoing - FIXT.1.1:FIX->FIX_STUB: 8=FIXT.1.1|9=267|35=RQS|34=3|49=FIX|52=20160628-13:49:58.474|56=FIX_STUB|20000=1|20001={json string}|20002=1.0|10=171| 
<20160628-13:49:58, FIXT.1.1:FIX_STUB->FIX, incoming> (8=FIXT.1.1|9=267|35=RQS|34=3|49=FIX|52=20160628-13:49:58.474|56=FIX_STUB|20000=1|20001={json string}|20002=1.0|10=171|) 
16:49:58.476 [QFJ Message Processor] INFO c.r.fix.api.stub.FixApplication - FIX STUB MESSAGE TYPE:quickfix.fix50sp2.Request 
<20160628-13:49:58, FIXT.1.1:FIX_STUB->FIX, outgoing> (8=FIXT.1.1|9=308|35=RSP|34=3|49=FIX_STUB|52=20160628-13:49:58.527|56=FIX|20000=1|20001={json string}||20002=1.0|10=240|) 
16:49:58.528 [NioProcessor-2] INFO quickfixj.msg.incoming - FIXT.1.1:FIX->FIX_STUB: 8=FIXT.1.1|9=308|35=RSP|34=3|49=FIX_STUB|52=20160628-13:49:58.527|56=FIX|20000=1|20001={json string}||20002=1.0|10=240| 
16:49:58.529 [QFJ Message Processor] INFO c....fix.engine.FixEngineImpl - FIX MESSAGE TYPE:quickfix.fix50sp2.Response 

на Tomcat работает, но когда мы пытаемся использовать точно такой же код в тестовой среде, и развернуть на Websphere сервер я получаю эту ошибку :

2016-06-28 11:17:44,196 appl="rtv" env="SYS" version="3.8.12" loglevel="INFO " message="FIXT.1.1:FIX->FIX_STUB: 8=FIXT.1.19=26735=RQS34=249=FIX52=20160628-09:17:44.19656=FIX_STUB20000=120001={json string}20002=1.010=147" thread="WebContainer : 1" logger="quickfixj.msg.outgoing" 
    2016-06-28 11:17:44,198 appl="rtv" env="SYS" version="3.8.12" loglevel="INFO " message="FIX STUB MESSAGE TYPE:quickfix.fix50sp2.Message" thread="QFJ Message Processor" logger="c.r.fix.api.stub.FixApplication" 
    2016-06-28 11:17:44,202 appl="rtv" env="SYS" version="3.8.12" loglevel="ERROR" message="FIX STUB MESSAGE CRACK FAILED" thread="QFJ Message Processor" logger="c.r.fix.api.stub.FixApplication" 
    quickfix.UnsupportedMessageType: null 
      at quickfix.fix50sp2.MessageCracker.onMessage(MessageCracker.java:39) ~[quickfixj-messages-all-1.6.2.jar:1.6.2] 
      at quickfix.fix50sp2.MessageCracker.crack50(MessageCracker.java:1787) ~[quickfixj-messages-all-1.6.2.jar:1.6.2] 
      at quickfix.fix50sp2.MessageCracker.crack(MessageCracker.java:1555) ~[quickfixj-messages-all-1.6.2.jar:1.6.2] 
      at com....fix.api.stub.FixApplication.fromApp(FixApplication.java:97) ~[rita-web-3.8.jar:na] 

Как вы можете видеть в примере, тип (сообщение суб-класс) это правильно обработаны (quickfix.fix50sp2.Request, quickfix.fix50sp2.Response), но на Websphere НЕ (quickfix.fix50sp2.Message). Используется MessageCracker.

Можете ли вы помочь мне исправить эту проблему, чтобы узнать, почему это происходит, связано с ОС, веб-сервером или некоторой конфигурацией FIX?

ответ

0

Я исправил проблему ... она была связана с classloader и дублирующими классами. Способ, которым я получил файлы jar, содержал также сообщения по умолчанию (зависимости maven ...) от Tomcat, приложение выбирает правильные классы, в то время как WebSphere принимает значение по умолчанию, поэтому приложение MessageCracker неправильно обрабатывало сообщения.

Смежные вопросы