解决javax.imageio.IIOException: Can't create output stream!

272 阅读1分钟

今天运行一个项目的时候,登录界面有个获取验证码的方法,但是请求到controller的时候,爆了一个java.lang .NullpointerExcention错误。找到对应位置之后,原来是这块获取验证码的时候是空的。 打了断点,在javax.imageio.ImageIO.write(image, "JPEG", os);出现报错javax.imageio.IIOException: Can't create output stream!

下面来,开始解决javax.imageio.IIOException: Can't create output stream!

第一种方式,可以在tomcat根目录创建一个temp目录,但是这种方式我试了下没成功。

第二种方式,替换ImageIO.write(image, "JPEG", os);,具体看代码

JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(response.getOutputStream());   
encoder.encode(image);

第三种方式,更换生成验证码方式,比如说kaptcha,还有一些第三方的api。

我是用第二种方式成功的,项目中有遇到这种情况的话可以试一下。