版本号:V3.1.0

问题描述

后端部署到服务器,本地去访问后端的服务,修改了.env.development中的后端请求服务地址。

示例:VUE_APP_API_BASE_URL=http://192.168.1.1:8000/jeecg-boot

后端服务器IP:192.168.1.1

后端服务器端口:8000

后端服务已测试,正常运行。

前端本地启动,去访问服务器后台地址,提示“获取验证码出错ull”

如果后端是本地启动,即VUE_APP_API_BASE_URL=http://localhost:8000/jeecg-boot
则正常。

附加说明:本地和服务器是同一局域网,不存在网络原因,因为数据库和redis和后端在同一个服务器。

截图&代码:
代码未做任何修改,除了前端.env.development中的后端请求服务地址。
在这里插入图片描述

在这里插入图片描述

去看了日志,后台报空指针,但是不知道为何?

解决方案:

1:开启SpringBoot的远程Debug模式,
参考https://blog.csdn.net/Phhht/article/details/116569097。

然后通过断点的方式一步一步去排查问题,找到方法:RandImageUtil—>getImageBuffer方法中,dispose方法报错。

// 图象生效

graphics.dispose();
错误:cannot evaluate sun.java2d.SunGraphics2D.toString

解决方案:

参考:https://www.jianshu.com/p/6d5acc28b061

Linux环境BufferedImage.getGraphics空指针异常,验证码的生成中用到了BufferedImage.getGraphics,开发环境中一切正常,直到今天,部署到linux之后,一直提示空指针镇异常,看的我是一脸懵B,服务器打断点之后,发现从BufferedImage.getGraphics之后,获取的Graphics2D就存在错误(cannot evalute sun.java2d.SunGraphics2D.toString()),一直到调用Graphics2D.drawString方法之后才会抛出空指针异常。

yum install fontconfig
直接安装,完事后解决。

上面给出的是普通java -jar的解决办法。

下面说Docker方式,Docker的话,按照官方给定的Dockerfile,即在目录jeecg-boot-module-system下,有个Dockerfile文件,根据他们的基础镜像运行,是没有问题的。

我的基础镜像因为用了openjdk:8-jdk-alpine,缺少字体库的原因估计是。

Logo

前往低代码交流专区

更多推荐