jPOS logger: добавить регистратор в упаковщик
Я внедряю ATM Simulator, который принимает сообщение ISO8583 от клиента и распаковывает его с помощью библиотеки jPOS. Ошибка, возникшая при распаковке моего сообщения: "ошибка при распаковке поля 102: отрицательное исключение размера" . Я исследовал эту ошибку и подумал о том, чтобы добавить регистратор в мою программу, чтобы при печати я мог получить информацию о том, какие данные поступают в какое поле.
Код, который я включаю в мое существующее Java-приложение, выглядит следующим образом:
Logger logger = new Logger();
logger.addListener (new SimpleLogListener(System.out));
((LogSource)p).setLogger(logger, "debug");// p is my ISOPackger
Это дает мне ошибку компиляции как
1- Конструктор Logger() не определен
2- Метод addListener не определен для типа Logger
3- LogSource не может быть преобразован в тип
Помогите мне в решении этих ошибок. Любая помощь будет оценена. Заранее спасибо.
4 ответа
Относительно этой ошибки "ошибка при распаковке поля 102: исключение отрицательного размера"
Я могу помочь, потому что это случилось со мной.
Проверьте файл iso87cscascii.xml в папке конфигурации, длина каждого поля и тип этого файла должны совпадать с полученным вами сообщением ISO.
Возможно, номер поля в ошибке (102) - это место, где произошла эта ошибка, пожалуйста, проверьте это поле точно, а также проверьте другие поля, чтобы гарантировать, что ошибка не повторится.
Не могли бы вы опубликовать полный класс Java? Я полагаю, вы добавили неверные библиотеки Jpos
1- Конструктор Logger() не определен
Вы используете импорт org.jpos.util.Logger?
2- Метод addListener не определен для типа Logger
Убедитесь, что вы используете именно библиотеку jpos.
Вы, вероятно, не импортируете org.jpos.util.Logger
и выбирая какой-то другой Logger.
В jPOS' Logger есть конструктор без аргументов.
Смотрите javadocs здесь: http://jpos.org/doc/javadoc/org/jpos/util/Logger.html
Это случилось со мной. Это был просто конфликт с регистратором SLF4J.