2010-09-09 27 views
1

Nous obtenons l'erreur suivante lors de la génération d'un rapport Jasper lors de l'exécution de notre application sur certaines machines avec Windows Vista, Windows 7 ou Windows 2008:La création de JasperReport avec image échoue à créer un fichier temporaire sous Windows Vista, 7 ou Server 2008

java.lang.RuntimeException: net.sf.jasperreports.engine.JRException: javax.imageio.IIOException: impossible de créer un flux de sortie! à br.com.oobj.relatorio.RRelatorioJasper.gerarJasperPrint (RRelatorioJasper.java:61) à br.com.oobj.relatorio.RRelatorioJasper.gerarJasperPrint (RRelatorioJasper.java:44) à br.com.oobj.cte. dacte.RGerarDacte.gerarJasperPrint (RGerarDacte.java:153) at br.com.oobj.cte.dacte.RGerarDacte.gerarJasperPrint (RGerarDacte.java:66) at br.oobj.me.impressao.GeradorDacte.gerarDAME (GeradorDacte.java:55) à br.com.oobj.me.impressao.GeradorDameDelegator.gerarDAME (GeradorDameDelegator.java:23) à br.com.oobj.me.impressao.ServicoImpressao.processar (ServicoImpressao.java:117) à br.com.oobj.me.impressao.ConsumidorImpressao.novaMensagem (ConsumidorImpressao.java:71) à br.com.oobj.util.fila.ConsumidorNotificante.run (Consum idorNotificante.java:229) à br.com.oobj.me.impressao.ConsumidorImpressao.run (ConsumidorImpressao.java:47) Causé par: net.sf.jasperreports.engine.JRException: javax.imageio.IIOException: Can ' t créer un flux de sortie! à net.sf.jasperreports.engine.util.JRJdk14ImageEncoder.encode (JRJdk14ImageEncoder.java:90) à net.sf.jasperreports.engine.util.JRAbstractImageEncoder.encode (JRAbstractImageEncoder.java:74) à net.sf. jasperreports.engine.util.JRImageLoader.loadImageDataFromAWTImage (JRImageLoader.java:166) à net.sf.jasperreports.engine.JRImageRenderer.getInstance (JRImageRenderer.java:207) à net.sf.jasperreports.engine.JRImageRenderer.getInstance (JRImageRenderer.java:190) à net.sf.jasperreports.engine.fill.JRFillImage.evaluateImage (JRFillImage.java:901) à net.sf.jasperreports.engine.fill.JRFillImage.evaluate (JRFillImage.java:870) at net.sf.jasperreports.engine.fill.JRFillElementContainer.evaluate (JRFillElementContainer.java:275) à net.sf.jasperreports.engine.fill.JRFillBand.evaluate (JRFillBand.java:426) à net.sf.jasperreports.engine.fill.JRVerticalFiller.fillBandNoOverflow (JRVerticalFiller.java:424) à net.sf. jasperreports.engine.fill.JRVerticalFiller.fillPageHeader (JRVerticalFiller.java:388) à net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportStart (JRVerticalFiller.java:249) à net.sf.jasperreports.engine.fill. JRVerticalFiller.fillReport (JRVerticalFiller.java:113) à net.sf.jasperreports.engine.fill.JRBaseFiller.fill (JRBaseFiller.java:891) à net.sf.jasperreports.engine.fill.JRBaseFiller.fill (JRBaseFiller. java: 814) à net.sf.jasperreports.engine.fill.JRFiller.fillReport (JRFiller.java:89) à net.sf.jasperreports.engine.JasperFillManag er.fillReport (JasperFillManager.java:601) à net.sf.jasperreports.engine.JasperFillManager.fillReport (JasperFillManager.java:517) à br.com.oobj.relatorio.RRelatorioJasper.gerarJasperPrint (RRelatorioJasper.java:58) ... 9 more Causé par: javax.imageio.IIOException: Impossible de créer un flux de sortie! à javax.imageio.ImageIO.write (Source inconnue) à net.sf.jasperreports.engine.util.JRJdk14ImageEncoder.encode (JRJdk14ImageEncoder.java:86) ... 27 plus causés par: javax.imageio.IIOException : Impossible de créer le fichier de cache! at javax.imageio.ImageIO.createImageOutputStream (source inconnue) ... 29 more Causée par: java.io.IOException: Le système ne peut pas trouver le chemin spécifié at java.io.WinNTFileSystem.createFileExclusively (Native Method) à java.io.File.checkAndCreate (Source inconnue) à java.io.File.createTempFile (Source inconnue) à javax.imageio.stream.FileCacheImageOutputStream. (Source inconnue) à com.sun .imageio.spi.OutputStreamImageOutputStreamSpi.createOutputStreamInstance (Source inconnue) ... 30 plus

Le rapport fait référence à une image JPG externe. L'application s'exécute en tant que service Windows. J'ai déjà essayé de démarrer le service avec un utilisateur administrateur, sans succès.

Dans certaines machines, nous avons résolu le problème en déplaçant l'image à un autre lecteur autre que C:

sera très reconnaissante à toute aide que vous pouvez apporter.

Merci, Jonathas

Répondre

1

Il semble que Windows 2008 a des valeurs par défaut pour certaines directives du système en matière de services.

Lors de l'exécution de l'application en mode utilisateur (c'est-à-dire à partir d'une session utilisateur Windows), le problème ne se vérifie pas.

En outre, si nous avons déplacé le fichier sur un lecteur autre que le lecteur sur lequel Windows est installé, le problème ne se produit pas.

Ce n'est pas exactement une solution (je n'ai pas compris exactement quelle directive système changer), mais je crois que cette information pourrait éventuellement aider.