Pessoal...
Na minha classe que eu chamo o relatorio, o usuario informa o numero de impressoes.
Estou usando o InputStream para carregar o relatorio, fiz um "FOR" para atender a quantidade de impressoes, porém ao passar por mais de uma vez pelo "FOR" estar lançando uma exeção, segue a minha classe e a exeção.
OBS: o erro só ocorre quendo o numero de impresoes é maior que 1.
minha classe...
public class Relatorios {
Map parametros = new HashMap();
JasperPrint jasperPrint;
idaoRelatorios idaoRelatorios = new idaoRelatorios();
private final String nomeAplicacao = "CADERNO DE QUESTÕES";
private final String dirImagem = "C:/Documents and Settings/Administrador/Meus documentos/Minhas imagens/logoTriunfo.jpg";
InputStream formularioPesquisa = getClass().getResourceAsStream("FormularioPesquisa.jasper");
public void formularioPesquisa(int codCaderno, int quantImpressoes) {
try {
parametros.put("nomeAplicacao", nomeAplicacao);
parametros.put("codCaderno", codCaderno);
parametros.put("dirImagem", dirImagem);
for(int i=0; i < quantImpressoes; i++){
parametros.remove("numeroFormulario");
parametros.put("numeroFormulario", idaoRelatorios.getSeguencial());
jasperPrint = JasperFillManager.fillReport(formularioPesquisa, parametros, ConectaBancodeDados.getConnection());
}
JOptionPane.showMessageDialog(null, "Impressão Realizada com Sucesso!");
} catch (JRException ex) {
Logger.getLogger(Relatorios.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
Exeção lançada...
SEVERE: null
net.sf.jasperreports.engine.JRException: Error loading object from InputStream
at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:200)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:361)
at relatorios.Relatorios.formularioPesquisa(Relatorios.java:45)
at frames.JInternalFrameImprimirFormularioPesquisa.jButtonImprimirActionPerformed(JInternalFrameImprimirFormularioPesquisa.java:114)
at frames.JInternalFrameImprimirFormularioPesquisa.access$000(JInternalFrameImprimirFormularioPesquisa.java:21)
at frames.JInternalFrameImprimirFormularioPesquisa$1.actionPerformed(JInternalFrameImprimirFormularioPesquisa.java:63)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.Component.processMouseEvent(Component.java:6038)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3265)
at java.awt.Component.processEvent(Component.java:5803)
at java.awt.Container.processEvent(Container.java:2058)
at java.awt.Component.dispatchEventImpl(Component.java:4410)
at java.awt.Container.dispatchEventImpl(Container.java:2116)
at java.awt.Component.dispatchEvent(Component.java:4240)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3986)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916)
at java.awt.Container.dispatchEventImpl(Container.java:2102)
at java.awt.Window.dispatchEventImpl(Window.java:2429)
at java.awt.Component.dispatchEvent(Component.java:4240)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
Caused by: java.io.IOException: Stream closed
at java.io.BufferedInputStream.getBufIfOpen(BufferedInputStream.java:145)
at java.io.BufferedInputStream.read(BufferedInputStream.java:308)
at java.io.ObjectInputStream$PeekInputStream.read(ObjectInputStream.java:2264)
at java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2277)
at java.io.ObjectInputStream$BlockDataInputStream.readShort(ObjectInputStream.java:2748)
at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:780)
at java.io.ObjectInputStream.<init>(ObjectInputStream.java:280)
at net.sf.jasperreports.engine.util.ContextClassLoaderObjectInputStream.<init>(ContextClassLoaderObjectInputStream.java:56)
at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:195)
... 30 more
Alguem poderia ajudar???