Erro jasperreports.engine.JRException

Estou lendo um xml e tentando criar seu relatório, mas tive o seguinte erro:

net.sf.jasperreports.engine.JRException: Error loading object from file : C:\XML\Teste2.jrxml
        at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:94)
        at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:536)
        at controle.EmiteRelatorio.main(EmiteRelatorio.java:25)
Caused by: java.io.StreamCorruptedException: invalid stream header: 3C3F786D
        at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:783)
        at java.io.ObjectInputStream.<init>(ObjectInputStream.java:280)
        at net.sf.jasperreports.engine.util.ContextClassLoaderObjectInputStream.<init>(ContextClassLoaderObjectInputStream.java:53)
        at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:89)
        ... 2 more

Esse C:\XML\Teste2.jrxml é o meu arquivo.jasper e meu xml está em C:\XML\ARQUIVO.XML
Essa é minha classe java:

import java.util.HashMap;
import javax.swing.JOptionPane;
import net.sf.jasperreports.engine.*;
import net.sf.jasperreports.engine.data.JRXmlDataSource;
import net.sf.jasperreports.view.JasperViewer;

public class EmiteRelatorio {
  public static void main(String[] args){
    try {
        String jasper = "C:/XML/Teste2.jrxml";

        JRXmlDataSource xml = new JRXmlDataSource("C:/XML/ARQUIVO.xml", "/NFe/infNFe/emit");

        JasperPrint jp = JasperFillManager.fillReport(jasper, new HashMap(),xml);

        JasperViewer.viewReport(jp,false);			
    }catch (JRException e){
        e.printStackTrace();
    }
 }
}//fim da class principal

Alguém me ajuda??