|
环境: Tomcat 6.0.35
今天同事发布一项目,在自己的Tomcat里运行正常, 但到别人的Tomcat里总是报下面的错误. 因为项目中要通过javax的image包中的类去加载图片,并将图片通过打印机打印,从错误中也能看出:系统是在加载图片过程中出错,而且是在创建缓存文件时报错了. 找了半天原因, 原来是别人Tomcat里的temp文件夹被删除了, 而这个文件夹正是用于存放图片等缓存文件的, 于是建立了一个, 问题解决!
通常在Jboss里,temp文件夹被删除后会自动被Jboss创建, 但Tomcat里好像是不行的,所以大家不要随便删除.
错误信息:
javax.imageio.IIOException: Can't create cache file!
at javax.imageio.ImageIO.createImageInputStream(ImageIO.java:335)
at javax.imageio.ImageIO.read(ImageIO.java:1325)
at com.synnex.reception.biz.ReceptionBean$1.print(ReceptionBean.java:232)
at sun.print.RasterPrinterJob.printPage(RasterPrinterJob.java:1936)
at sun.print.RasterPrinterJob.print(RasterPrinterJob.java:1431)
at sun.print.RasterPrinterJob.print(RasterPrinterJob.java:1247)
at com.synnex.reception.biz.ReceptionBean.printBadge(ReceptionBean.java:262)
at com.synnex.reception.controller.Controll.doGet(Controll.java:50)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:877)
at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:5
94)
at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1675)
at java.lang.Thread.run(Thread.java:619)
Caused by: java.io.IOException: The system cannot find the path specified
at java.io.WinNTFileSystem.createFileExclusively(Native Method)
at java.io.File.checkAndCreate(File.java:1704)
at java.io.File.createTempFile(File.java:1792)
at javax.imageio.stream.FileCacheImageInputStream.<init>(FileCacheImageInputStream.java:84)
at com.sun.imageio.spi.InputStreamImageInputStreamSpi.createInputStreamInstance(InputStreamImageInputS
treamSpi.java:51)
at javax.imageio.ImageIO.createImageInputStream(ImageIO.java:331)
... 21 more
javax.imageio.IIOException: Can't create cache file!
at javax.imageio.ImageIO.createImageInputStream(ImageIO.java:335)
at javax.imageio.ImageIO.read(ImageIO.java:1325)
at com.synnex.reception.biz.ReceptionBean$1.print(ReceptionBean.java:232)
at sun.print.RasterPrinterJob.printPage(RasterPrinterJob.java:1964)
at sun.print.RasterPrinterJob.print(RasterPrinterJob.java:1431)
at sun.print.RasterPrinterJob.print(RasterPrinterJob.java:1247)
at com.synnex.reception.biz.ReceptionBean.printBadge(ReceptionBean.java:262)
at com.synnex.reception.controller.Controll.doGet(Controll.java:50)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:877)
at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:5
94)
at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1675)
at java.lang.Thread.run(Thread.java:619)
Caused by: java.io.IOException: The system cannot find the path specified
at java.io.WinNTFileSystem.createFileExclusively(Native Method)
at java.io.File.checkAndCreate(File.java:1704)
at java.io.File.createTempFile(File.java:1792)
at javax.imageio.stream.FileCacheImageInputStream.<init>(FileCacheImageInputStream.java:84)
at com.sun.imageio.spi.InputStreamImageInputStreamSpi.createInputStreamInstance(InputStreamImageInputS
treamSpi.java:51)
at javax.imageio.ImageIO.createImageInputStream(ImageIO.java:331)
... 21 more |
|