Как отключить канал 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
перегрузка ожидает шестнадцатеричное представление.