用java+flex做了一个拍照的小软件,在自己电脑上OK的,装到其它机器上拍照时报以下 错误。
网上都是说JSP+tomcat遇到该异常如何处理,但是未用到这些,有其他解决方案么?提点下小弟。javax.imageio.IIOException: Can't create output stream!
INFO | jvm 1 | 2013/01/25 16:09:09 | at javax.imageio.ImageIO.write(ImageIO.java:1574)
INFO | jvm 1 | 2013/01/25 16:09:09 | at znet.web.service.PersonService.savePersonPhotoById(PersonService.java:1049)
INFO | jvm 1 | 2013/01/25 16:09:09 | at znet.web.service.pac.PersonServicePackage.savePersonPhotoById(PersonServicePackage.java:411)
INFO | jvm 1 | 2013/01/25 16:09:09 | at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
INFO | jvm 1 | 2013/01/25 16:09:09 | at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
INFO | jvm 1 | 2013/01/25 16:09:09 | at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
INFO | jvm 1 | 2013/01/25 16:09:09 | at java.lang.reflect.Method.invoke(Method.java:601)
INFO | jvm 1 | 2013/01/25 16:09:09 | at znet.web.parse.ParseUtil.parse(ParseUtil.java:38)
INFO | jvm 1 | 2013/01/25 16:09:09 | at znet.web.parse.ParseFlexData.parse(ParseFlexData.java:48)
INFO | jvm 1 | 2013/01/25 16:09:09 | at znet.web.parse.ParseData.parseCommand(ParseData.java:16)
INFO | jvm 1 | 2013/01/25 16:09:09 | at znet.web.server.ClientThread.run(ClientThread.java:30)
INFO | jvm 1 | 2013/01/25 16:09:09 | Caused by: javax.imageio.IIOException: Can't create cache file!
INFO | jvm 1 | 2013/01/25 16:09:09 | at javax.imageio.ImageIO.createImageOutputStream(ImageIO.java:423)
INFO | jvm 1 | 2013/01/25 16:09:09 | at javax.imageio.ImageIO.write(ImageIO.java:1572)
INFO | jvm 1 | 2013/01/25 16:09:09 | ... 10 more
INFO | jvm 1 | 2013/01/25 16:09:09 | Caused by: java.io.IOException: 系统找不到指定的路径。
INFO | jvm 1 | 2013/01/25 16:09:09 | at java.io.WinNTFileSystem.createFileExclusively(Native Method)
INFO | jvm 1 | 2013/01/25 16:09:09 | at java.io.File.createTempFile(File.java:1879)
INFO | jvm 1 | 2013/01/25 16:09:09 | at javax.imageio.stream.FileCacheImageOutputStream.<init>(FileCacheImageOutputStream.java:86)
INFO | jvm 1 | 2013/01/25 16:09:09 | at com.sun.imageio.spi.OutputStreamImageOutputStreamSpi.createOutputStreamInstance(OutputStreamImageOutputStreamSpi.java:68)
INFO | jvm 1 | 2013/01/25 16:09:09 | at javax.imageio.ImageIO.createImageOutputStream(ImageIO.java:419)javaflex保存照片 socket
网上都是说JSP+tomcat遇到该异常如何处理,但是未用到这些,有其他解决方案么?提点下小弟。javax.imageio.IIOException: Can't create output stream!
INFO | jvm 1 | 2013/01/25 16:09:09 | at javax.imageio.ImageIO.write(ImageIO.java:1574)
INFO | jvm 1 | 2013/01/25 16:09:09 | at znet.web.service.PersonService.savePersonPhotoById(PersonService.java:1049)
INFO | jvm 1 | 2013/01/25 16:09:09 | at znet.web.service.pac.PersonServicePackage.savePersonPhotoById(PersonServicePackage.java:411)
INFO | jvm 1 | 2013/01/25 16:09:09 | at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
INFO | jvm 1 | 2013/01/25 16:09:09 | at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
INFO | jvm 1 | 2013/01/25 16:09:09 | at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
INFO | jvm 1 | 2013/01/25 16:09:09 | at java.lang.reflect.Method.invoke(Method.java:601)
INFO | jvm 1 | 2013/01/25 16:09:09 | at znet.web.parse.ParseUtil.parse(ParseUtil.java:38)
INFO | jvm 1 | 2013/01/25 16:09:09 | at znet.web.parse.ParseFlexData.parse(ParseFlexData.java:48)
INFO | jvm 1 | 2013/01/25 16:09:09 | at znet.web.parse.ParseData.parseCommand(ParseData.java:16)
INFO | jvm 1 | 2013/01/25 16:09:09 | at znet.web.server.ClientThread.run(ClientThread.java:30)
INFO | jvm 1 | 2013/01/25 16:09:09 | Caused by: javax.imageio.IIOException: Can't create cache file!
INFO | jvm 1 | 2013/01/25 16:09:09 | at javax.imageio.ImageIO.createImageOutputStream(ImageIO.java:423)
INFO | jvm 1 | 2013/01/25 16:09:09 | at javax.imageio.ImageIO.write(ImageIO.java:1572)
INFO | jvm 1 | 2013/01/25 16:09:09 | ... 10 more
INFO | jvm 1 | 2013/01/25 16:09:09 | Caused by: java.io.IOException: 系统找不到指定的路径。
INFO | jvm 1 | 2013/01/25 16:09:09 | at java.io.WinNTFileSystem.createFileExclusively(Native Method)
INFO | jvm 1 | 2013/01/25 16:09:09 | at java.io.File.createTempFile(File.java:1879)
INFO | jvm 1 | 2013/01/25 16:09:09 | at javax.imageio.stream.FileCacheImageOutputStream.<init>(FileCacheImageOutputStream.java:86)
INFO | jvm 1 | 2013/01/25 16:09:09 | at com.sun.imageio.spi.OutputStreamImageOutputStreamSpi.createOutputStreamInstance(OutputStreamImageOutputStreamSpi.java:68)
INFO | jvm 1 | 2013/01/25 16:09:09 | at javax.imageio.ImageIO.createImageOutputStream(ImageIO.java:419)javaflex保存照片 socket
2、网上搜的,供参考.
http://blog.csdn.net/cuker919/article/details/6185660
ImageIO.write(image, "jpeg", response.getOutputStream());修改为
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(response.getOutputStream());
encoder.encode(image);
以上方式我这弄不了,应为没有用JSP,不能为了解决这个问题整个tomcat服务器。谢谢各位的解答,问题我解决了。
ImageIO.write(img, "jpg", bao)方法会生成临时文件,这个临时文件产生的路径,java会调用C的本地方法。因此可以说与系统相关。
我查了下源码和java的API,找到了方法ImageIO.setUseCache(false);
这个设置后,不启用缓存,直接就生成照片了,到这问题就解决了。分就分给2位了。