Я работаю над двунаправленным адаптером, который применяет некоторые преобразования к сообщениям 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());
}
Не могли бы вы помочь мне решить эту проблему?