问题现象:登陆页面验证码,在一次更新后无法显示,后台没有错误日志,浏览器里code 200 没找到一点儿错误,就是不显示!!在本地开发环境正常!

。。。。。此处省略一下午的操作

问题原因:

生成验证码的图片使用的这段代码

ServletOutputStream out = null;
try { // 图像输出out = response.getOutputStream();ImageIO.write(bufferImg, "jpeg", out);
} catch (IOException e) {try {out.close();} catch (IOException e1) {e1.printStackTrace();}
}

首先问题是ImageIO.write 使用了tomcat下的temp临时目录,这个在部署的时候删除了,导致无法显示;

然后就是,本来找不到零食目录时会报异常:

javax.imageio.IIOException: Can't create cache file!
at javax.imageio.ImageIO.createImageInputStream(ImageIO.java:361)
at javax.imageio.ImageIO.read(ImageIO.java:1351)

但是catch (IOException e)这个并没有捕获到这个异常,后台什么日志都没记录到,导致浪费了很长时间没发现,后来抄了一段别人的代码,里面是catch(Exception e)才注意到错误!!

解决方法:就是新建个temp目录就好了;

另外还可以通过ImageIO.setUseCache(false)设置,更改缓存策略,使用内存缓存,不使用文件目录缓存;或者ImageIO.setCacheDirectory(cacheDirectory),指定缓存目录

Java Tomcat生成图片验证码不显示问题 超坑记录相关推荐

  1. 使用Java读取 “Python写入redis” 的数据踩坑记录

    https://my.oschina.net/u/2338224/blog/3061507 使用Java读取 "Python写入redis" 的数据踩坑记录 https://seg ...

  2. Java代码生成图片验证码实现

    介绍一个使用Java代码生成随机图片验证码的示例 可以直接配置成Servlet,在页面直接调用 Java代码随机生成图片验证码 package com.rchm.util.images;import ...

  3. Java代码生成图片验证码

    Java生成图片验证码 1.编写代码 copy 下面的代码 并运行main函数 import javax.imageio.ImageIO; import java.awt.*; import java ...

  4. 微信退款 java工具类,微信支付中退款踩坑记录

    首先附上微信支付的开发者文档 其实这里所说的踩坑记录,无非就是微信在开发者文档上的写不太明确,也没有比较官方的demo,在此列出一个可行的demo,供大家下载使用. 主要问题就是在这几步解密上 微信的 ...

  5. java 发送邮件_Jenkins实现自动化邮件发送踩坑记录

    文章简介 本文分享Jenkins实现邮件发送,安装Jenkins可参考jenkins安装.写这篇文章,是在实际使用Jenkins过程中遇到这样一个问题,当每次Jenkins构建成功或者失败后,需要个人 ...

  6. java国际化服务器不识别_国际化踩坑记录java.util.MissingResourceException:

    在做国际化的时候遇到一个bug是无法加载到根目录下的自定义的properties文件 报错如下: java.util.MissingResourceException: Can't find bund ...

  7. GD32驱动DS3231显示时钟踩坑记录

    近日调试GD32驱动ds3231的程序,程序从STM 32移植过来的,所以就没想太多.当时STM32有HAL库开发,运行在内部晶振经PLL后的64MHZ频率.具体驱动程序网上一大堆,我这里就不在赘述了 ...

  8. linux+tomcat+jdk环境验证码无法显示

    我的环境配置:RHEL6.5+tomcat6+jdk1.6 今天遇到一个奇怪的现象,我的tomcat启动起来之后,网站无法显示验证码,导致无法登陆.我的tomcat启动过程是这样的: 我有一个进程守护 ...

  9. 后端生成图片验证码,Kotlin生成图片验证码,Java生成图片验证码,图片验证码的生成和校验

    后端生成图片验证码 注:以下代码主要使用kotlin进行编写,kotlin可兼容java,可以直接使用.IDEA也支持将java与kotlin代码进行互相转换. 1.引入依赖: Gradle(若你使用 ...

  10. 【java图片验证码】Java 服务端生成图片验证码及验证

    Java 服务端生成图片验证码及验证 简介 验证码是防止有人利用机器人自动批量注册.对特定的注册用户用特定程序暴力破解方 式进行不断的登录.灌水.因为验证码是一个混合了数字或符号的图片,人眼看起来都费 ...

最新文章

  1. 『求助』请求服务器超时或失败问题
  2. BZOJ1146[CTSC2008]网络管理——出栈入栈序+树状数组套主席树
  3. Android_安卓为按钮控件绑定事件的五种方式
  4. BI报表平台纪实:半年被叫停,用户个位数,分析后我找到了原因
  5. linux 反汇编目标文件,用于查看目标文件或可执行文件的组成信息的命令:objdump命令...
  6. SCOM 2012 R2监控Microsoft Azure服务(2)配置Azure监控
  7. vmware 虚拟机nat连接,局域网访问
  8. 项目中使用 husky 配合 lint-staged 进行git提交前代码检查
  9. 看完这篇文章你就可以告诉领导你精通Zookeeper了
  10. Halcon DrawRegion()后会阻塞直到右键按下,请问如何主动取消绘制区域
  11. 有密码的PDF文件如何编辑?
  12. 圣思园——JAVA SE Lesson 1
  13. DFS练习——王子救公主
  14. 函数渐近界与算法性能分析
  15. svn: E155007: 'XXX' is not a working copy
  16. Rocket.chat 安装
  17. python基础读后感_《python基础教程 》第一章 读书笔记
  18. 关于自定义View的drawText字体测量
  19. 疯狂英语脱口而出900句
  20. hibernate中mappedby的理解

热门文章

  1. google 常用的技术搜索关键词
  2. meson ninja 简介
  3. 前端三大框架React、Vue、Angular简述
  4. 【模型选择】从0到1的数据价值实现需要数据分析师做些什么?
  5. codec engine代码阅读四---CE_DIR/examples/ti/sdo/ce/examles/codecs/videnc_copy(转)
  6. 六轴陀螺仪简介及在智能车中的应用
  7. 猿创征文|Apache ShenYu网关插件介绍
  8. C++ 编译报错discards qualifiers [-fpermissive]
  9. EVIEWS:ARCH类、GARCH、EGARCH,建模估计沪深300指数2019-2020年交易日的波动率,并对结果进行分析。
  10. win10 联想键盘快捷键关闭_win10系统关闭快捷键的操作方法