关于CaptchaUtil.out函数无法使用的问题的一种很大概率的可能性
谈到验证码,现在很多教程都是有关于easy-captcha1.6.2的内置函数直接绘画,因为其非常方便,绘制验证码仅仅需要几行代码而已。仅仅一行代码
CaptchaUtil.out(request,response);
就可以绘制出图片验证码并输入到流中,通过img函数可以直接呈现在页面上
但我在做项目时却发现了一些问题。
首先,因为我是基于Springboot3做的项目,我查看了一下,其内置tomcat版本是10.1.5。
在我调用这个CaptchaUtil.out函数的时候,问题就出现了
直接报错,可以看到,该参数需要的是javax包下的request和response,而我的参数是jakarta下的。运行一下,会发现二者并不能相互转换。
那究其原因是什么呢?我查询了一下tomcat官方文档,发现在Tomcat 10中把包名从以往版本的javax改成了jakarta,也就是说这俩含义差不多,但是属于版本更迭之后的两个不同名包,无法相互转换。
然后我又去easy-captcha的github官网查看了一下,发现其最新版本是1.6.2,这是2019年开发的版本,那个时候tomact10都没出,所以其根本不可能兼容。
所以,只有两个方法去解决这个问题:换个方法去绘制验证码,或者更换tomcat服务器版本。