Исключение при распаковке поля в JPOS
Когда я отправляю запрос на сервер, в журнале сервера я получаю правильный результат. это мой запрос к серверу, как показано ниже
ISOMsg isoMsg = new ISOMsg();
isoMsg.setMTI(Constants.RequestType.MESSAGE_REQUEST.getValue());
isoMsg.set(3,Constants.Services.DEPOSIT_FUNDS_REQUEST.getValue());
isoMsg.set(4, depositFundRequest.getAmount().toString());
isoMsg.set(7, ISODate.getDateTime(today, TimeZone.getTimeZone("GMT+03")));
isoMsg.set(11, ServiceUtils.generate(6));
//isoMsg.set(12, "100629072055");
isoMsg.set(17, ISODate.getDate(today));
//isoMsg.set(24, "200");
isoMsg.set(32, "111111");
//isoMsg.set(35, "6278519999011712");
isoMsg.set(37, ServiceUtils.generate(12));
//isoMsg.set(41, "TERMID01");
//isoMsg.set(43, "11");
isoMsg.set(46,"00KESD000000000000500000000000D0000000000000000KES");
isoMsg.set(49,"KES");
isoMsg.set(102,depositFundRequest.getAccount());
isoMsg.set(123, userContextService.getCurrentUser());//UserId
isoMsg.set(126,Constants.Field126.CASH_IN.getValue());
channel.send (isoMsg);
ISOMsg responseMsg = channel.receive ();
Но при входе на стороне клиента я получаю следующее исключение.
org.jpos.iso.ISOException: org.jpos.iso.IFA_LLCHAR: Problem unpacking field 43 (java.lang.NegativeArraySizeException) unpacking field=43, consumed=97
Я использую ASCII-упаковщик и канал BCD, пожалуйста, помогите мне разрешить исключение
2 ответа
Ты можешь использовать org.jpos.iso.IFE_LLCHAR
для поля 43 в вашем упаковщике.
Вам лучше перепроверить ISOPackager, который вы использовали для разрешения полученных данных с сервера. Если используемый вами упаковщик отличается от того, который использовался на сервере, то есть вероятность появления ошибок. При небольших несоответствиях (например, ISO87APackager vs ISO87BPackager) возникают исключения.