ISOUtil.hex2byte добавление 0 слева от моего сообщения - PullRequest
0 голосов
/ 08 октября 2019

Я пытаюсь создать веб-сервис JPOS, используя JAVA. Вот код, который я использую.

            GenericPackager packager;
            packager = new GenericPackager("ISO_8583_1987.xml");
            org.jpos.util.Logger logger = new org.jpos.util.Logger();
            logger.addListener(new SimpleLogListener(System.out));
            ((LogSource)packager).setLogger(logger, "debug");
            ISOMsg isoMsg = new ISOMsg();
            isoMsg.setPackager(packager);
            isoMsg.unpack(b);
            printISOMessage(isoMsg);

Проблема с самого начала в методе hex2byte.

Длина всего до тех пор, пока поле данных 19 не будет кратно 2. Поле данных 19 в моем пакере имеет значение IFB_NUMERIC с длиной 3. Когда я отправляю сообщение 02000000200000000000177 (установлено только поле данных 19), hex2byte добавляет 0 слева для созданиядлина сообщения даже. Из-за этого MTI приходит как 0020 вместо 0200. Это также портит битовую карту, поскольку бит, установленный для поля 17-18-19-20, не является битовой картой для 21-22-23-24. Как и ожидалось, когда я запускаю это, метод unpack показывает бит 23 как 017. Это, конечно, работает нормально, если я отправляю сообщение 020000002000000000001770 (дополнительно 0 в конце).

Должен ли я использовать что-то, кроме ISOUtil.hex2byte?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...