2012-04-03 47 views
1
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()); 
    } 
} 

上記は私のスクリプトです。JasperReports API:JasperCompileManager.compileReport(String)メソッドを呼び出すとMalformedByteSequenceException例外が発生しました

これは私のエラーです:これが発生し、どのようにそれを修正することですなぜ

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

誰でも知っていますか?

答えて

2

文字のコード化に問題があります。レポートの始めにエンコードラインを変更しようとしましたか?

中央ヨーロッパのアルファベットのためのすなわち、変更:

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

によって

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

あなたが、ここでは異なる文字コード規格のリストを持っている: http://en.wikipedia.org/wiki/Character_encoding#Common_character_encodings

はそれが

0
の作品ホープ

この例外はいつ発生しますかcur(コンパイルまたは実行?)。通常、この問題は入力がUTF-8でないことを意味します。

これがUTF-8であることが確実であれば、これを試してください: 1. NEW EMPTYファイルを作成し、UTF-8としてエンコードします。 2.古いファイルのテキスト全体を新しいファイルにコピーします。 3.新しいファイルを保存し、新しいファイルで動作するかどうかを確認します。そうであれば、古いファイルは適切なUTF-8ではありませんでした。 4.入力ファイル(jrxml)を投稿してください。

このような問題が発生した場合、問題のある文字を見つけようとすると、HEXエディタが役立ちます。

1

既にコンパイルされたジャスパーファイルをコンパイルしようとしています。 newReport5.jrxmlでnewReport5.jasperを置き換えます。

あなたが直接碧玉のファイルで作業したい場合は、このようにしなければならない。

JasperReport jasperReport = (JasperReport)JRLoader.loadObject(new File("filename.jasper")); 
関連する問題