Есть ли способ проанализировать сообщение ISO8583, в котором растровое изображение замаскировано или не имеет растрового изображения? - PullRequest
0 голосов
/ 26 января 2019

Я работаю над двунаправленным адаптером, который применяет некоторые преобразования к сообщениям ISO8583 и отправляет их на другую сторону.Но одна сторона адаптера отправляет сообщения, которые не имеют растрового изображения.

2019-01-26 13:38:27,774  ChannelServerEndpoint.run()  Can't parse request  1804179121190126120635801

В реальном сценарии после MIT (1804) у меня должно было быть 8 или 16 шестнадцатеричных цифр в качестве растрового изображения.как этот:

Sending request: 163726, ISO Message: <br/>**18040030010000000000163726190123065952831**<br/>
TYPE: 1804<br/>
F  11(NUMERIC): 163726 -> '163726'<br/>
F  12(DATE12): 190123065952 -> '190123065952'<br/>
F  24(NUMERIC): 831 -> '831'<br/>

Я использую J8583.

try {
            log.debug(String.format("Parsing incoming: '%s'", new String(
                    data)));

            // incoming message
            IsoMessage incomingMessage = messageFactory.parseMessage(data, NetworkInterfaceConfiguration.MESSAGE_HEADER_LENGTH);

            //  System.out.printf("Message TYPE: %s", messageType);
            MessageTransformer transformer = new  MessageTransformer(incomingMessage);
            transformer.run();

            if (transformer.getIsoMessage() != null) {
                System.out.println("We are before assigning transformations");
                transformedMessage = transformer.getIsoMessage();
            } else {
                log.error("Transformation is failed.");
            }

            IsoMessageUtil.printIsoMessage(transformedMessage);
            log.info("Firing Message to Dist....");
            ChannelClientEndpint.fireMessage(transformedMessage);

        } catch (ParseException ex) {
            log.error(String.format("Can't parse request %s", new String(data)));
            throw new UnknownError(ex.getMessage());
        } catch (IOException ex) {
            log.error("Writing response", ex);
            throw new UncheckedIOException(ex.getMessage(), ex);
        } catch (Exception ex) {
            log.error(ex.getMessage(), ex);
            throw new UnknownError(ex.getMessage());
        }

Не могли бы вы помочь мне решить эту проблему?

1 Ответ

0 голосов
/ 30 января 2019

Нет способа проанализировать сообщение ISO8583 без растрового изображения и спецификации для типа каждого поля. Если вы знаете, какие поля должны быть получены и какого они типа, вам необходимо настроить MessageFactory таким образом и вручную вставить растровое изображение в ваши данные, чтобы его можно было проанализировать как обычное сообщение ISO8583.

...