Как отключить канал BASE24TCPChannel — последний символ, который помещается в iso-сообщение

Доброе утро, я новичок в jpos, у меня проблема в том, что я отправляю сообщение с заголовком, но при отправке оно всегда добавляет в конце символ 03 в шестнадцатеричном формате.

код того, как я его отправляю

код того, как я его отправляю

         // Create Packager based on XML that contain DE type
   GenericPackager packager = new GenericPackager("PackISO.xml");

   // Crea una instancia de la clase BASE24TCPChannel
   BASE24TCPChannel c = new BASE24TCPChannel("localhost", 5000,packager);
   c.setHeader("ISO008000099");
       
   // Create ISO Message
   ISOMsg isoMsg = new ISOMsg();        
   isoMsg.setPackager(packager);
 
   isoMsg.setMTI("0800");
   isoMsg.set(7, "1088110140");
   isoMsg.set(11, "087478");
   isoMsg.set(70, "999");

   c.connect();
   c.send(isoMsg);

Это то, что отправляет send, я фиксирую это с помощью netcat nc -l -p 5000 | ххд

      00000000: 0044 4953 4f30 3038 3030 3030 3939 3038  .DISO00800009908
00000010: 3030 3832 3230 3030 3030 3030 3030 3030  0082200000000000
00000020: 3030 3034 3030 3030 3030 3030 3030 3030  0004000000000000
00000030: 3030 3130 3838 3131 3031 3430 3038 3734  0010881101400874
00000040: 3738 3939 3903                           78999.

В конце каждого сообщения всегда приходит "03", как его отключить, чтобы оно не отправлялось?00000040: 3738 3939 39**03** 78999**.**

1 ответ

Если вам не нужен этот трейлер, вам нужно использовать другой канал.

PostChannelилиNACChannelделайте по сути то же самое, но не отправляете трейлер.

         ...
   PostChannel c = new PostChannel("localhost", 5000,packager);
   c.setHeader("ISO008000099".getBytes(ISOUtil.ENCODING));
   ...

Вам также необходимо установить заголовок в байтах, потому что строкаsetHeaderперегрузка ожидает шестнадцатеричное представление.

Другие вопросы по тегам