API JasperReports: вызов метода JasperCompileManager.compileReport (String) вызвал исключение MalformedByteSequenceException - PullRequest
1 голос
/ 03 апреля 2012
public void openReport() {

    try {
        HashMap params = new HashMap();
        params.put("aapor", 19);

        JasperReport jasperReport1 = JasperCompileManager.compileReport("C:/Users/emidemi.emidemi-PC/Documents/NetBeansProjects/FleetManager/src/FleetManager/newReport5.jasper");
        JasperPrint jasperPrint1 = JasperFillManager.fillReport(jasperReport1, params, conn.getConn());

        JRViewer viewer = new JRViewer(jasperPrint1);

    } catch (Exception e) {
        System.out.println(e.getMessage());
    }
}

Выше мой сценарий.

Это моя ошибка:

com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: Invalid byte 1 of 1-byte UTF-8 sequence.
BUILD SUCCESSFUL (total time: 7 seconds)

Кто-нибудь знает, почему это происходит и как это исправить?

Ответы [ 3 ]

2 голосов
/ 03 апреля 2012

Это проблема с кодификацией персонажа. Вы пытались изменить строку кодирования в начале отчета?

т.е. для среднеевропейского алфавита, изменить:

<?xml version="1.0" encoding="UTF-8"?>

от

<?xml version="1.0" encoding="CP1250"?>

У вас есть список различных стандартов кодирования символов здесь: http://en.wikipedia.org/wiki/Character_encoding#Common_character_encodings

Надеюсь, что это работает

1 голос
/ 08 марта 2013

Вы пытаетесь скомпилировать уже скомпилированный файл яшмы.Замените newReport5.jasper на newReport5.jrxml.

Если вы хотите работать с файлом jasper напрямую, вам необходимо сделать следующее:

JasperReport jasperReport = (JasperReport)JRLoader.loadObject(new File("filename.jasper"));
0 голосов
/ 04 апреля 2012

Когда возникает это исключение (Компиляция или Выполнение?).Обычно эта проблема означает, что ваш ввод НЕ UTF-8.

Если вы абсолютно уверены, что это должен быть UTF-8, попробуйте следующее: 1. Создайте НОВЫЙ ПУСТОЙ файл и закодируйте его как UTF-8.2. Скопируйте весь текст из старого файла в новый.3. Сохраните новый и проверьте, работает ли он с новым файлом.Если это так, ваш старый файл не был правильным UTF-8.4. Если нет, опубликуйте свой входной файл (jrxml.)

Когда у меня возникают подобные проблемы, я пытаюсь найти оскорбительный символ, помогает редактор HEX.

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