1、公司新的支付项目采用zookeeper+dubbo微服务架构
2、开发环境和测试环境、模测环境、生产环境采用docker部署
3、今天在和我们的运维一块搭建和调试jenkins+svn+docker+harbor时,遇到我们部署的java web项目的登录验证不能显示问题。
1)通过在验证码类中记录比较详细的日志,最后排查出是awt库中的java.awt.Graphics2D类,在调用起实例的drawString方法时报了httpstaus 500错误
2)通过
https://blog.csdn.net/qq_36836224/article/details/80250220
提供的测试类,在docker中编译此类,得到更精准的异常信息
bash-4.4# java Graphics2DTest
bash-4.4# java Graphics2DTest
Exception in thread "main" java.lang.UnsatisfiedLinkError: /jdk/jre/lib/amd64/libfontmanager.so: libgcc_s.so.1: cannot open shared object file: No such file or directory
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1941)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1845)
at java.lang.Runtime.loadLibrary0(Runtime.java:870)
at java.lang.System.loadLibrary(System.java:1122)
at sun.font.FontManagerNativeLibrary$1.run(FontManagerNativeLibrary.java:61)
at java.security.AccessController.doPrivileged(Native Method)
at sun.font.FontManagerNativeLibrary.<clinit>(FontManagerNativeLibrary.java:32)
at sun.font.SunFontManager$1.run(SunFontManager.java:339)
at java.security.AccessController.doPrivileged(Native Method)
at sun.font.SunFontManager.<clinit>(SunFontManager.java:335)
at sun.font.FontDesignMetrics.getMetrics(FontDesignMetrics.java:264)
at sun.java2d.SunGraphics2D.getFontMetrics(SunGraphics2D.java:863)
at Graphics2DTest.main(Graphics2DTest.java:32)
3)、通过上述错误找到https://blog.soilove.cn/archives/1592.html资料
跟运维沟通安装libgcc_s.so.1
4)、安装之后运维反馈继续报错,然后我登录进去docker,执行java Graphics2DTest发现确实依然报,再通过find命令去查 find / -name libgcc_s.so.1
发现/usr/lib/libgcc_s.so.1 不在/jdk/jre/lib/amd64/目录下,故此我把libgcc_s.so.1拷贝到/jdk/jre/lib/amd64/目录
5)、然后继续执行java Graphics2DTest进行测试,发现了新的报错信息
bash-4.4# java Graphics2DTest
Exception in thread "main" java.lang.UnsatisfiedLinkError: /jdk/jre/lib/amd64/libfontmanager.so: libc.musl-x86_64.so.1: cannot open shared object file: No such file or directory
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1941)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1845)
at java.lang.Runtime.loadLibrary0(Runtime.java:870)
at java.lang.System.loadLibrary(System.java:1122)
at sun.font.FontManagerNativeLibrary$1.run(FontManagerNativeLibrary.java:61)
at java.security.AccessController.doPrivileged(Native Method)
at sun.font.FontManagerNativeLibrary.<clinit>(FontManagerNativeLibrary.java:32)
at sun.font.SunFontManager$1.run(SunFontManager.java:339)
at java.security.AccessController.doPrivileged(Native Method)
at sun.font.SunFontManager.<clinit>(SunFontManager.java:335)
at sun.font.FontDesignMetrics.getMetrics(FontDesignMetrics.java:264)
at sun.java2d.SunGraphics2D.getFontMetrics(SunGraphics2D.java:863)
at Graphics2DTest.main(Graphics2DTest.java:32)
6)、再把libc.musl-x86_64.so.1拷贝到/jdk/jre/lib/amd64/目录,再执行测试通过
7)、再验证web验证码服务,发现恢复正常
分享到:
相关推荐
docker部署Java项目流程
步骤包括:选择合适的基础镜像、准备Java应用程序、配置Dockerfile、构建Docker镜像、运行Docker容器、访问Docker容器中的Java应用程序、发布Docker镜像。最佳实践包括:使用最小化的基础镜像、分离JRE和应用程序、...
使用 Docker 部署 Django web 应用.zip使用 Docker 部署 Django web 应用.zip使用 Docker 部署 Django web 应用.zip使用 Docker 部署 Django web 应用.zip使用 Docker 部署 Django web 应用.zip使用 Docker 部署 ...
docker自动部署dockerfile JDK、mysql、tomcat、java web项目
Docker容器部署tomcat出现中文乱码.docx
二、Dockerfile文件编写,JVM配置,docker部署java后端服务; 三、docker部署java后端服务jenkins平台自动构建实现; 适合对docker经验不多,需要实现基于docker容器的java后端jenkins自动构建的职场工作人员
使用docker部署nginx前后端解决跨域问题
Docker 部署java环境-------------------------------------
主要给大家介绍了关于在Linux服务器下利用Docker部署.net Core项目的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用.net Core具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
docker基本入门以后,可以试试打包docker镜像与dockerfile了 docker镜像 docker hub仓库有2类仓库,用户仓库和顶层仓库,用户仓库由docker用户创建的,顶层仓库由docker内部的人来管理的。仓库里存放的是镜像文件,...
为了节约成本,很多时候一台server 的nginx可能要部署多个前端的情况,本实例是在docker环境下部署两个前端,同时处理前端调用后端跨域问题,本示例为阿里云centos7 系统docker20.10.6环境下nginx1.19.5版本 ...
Docker-Compose部署nginx代理Tomcat集群,实现负载均衡!
docker制作自定义化的tomcat镜像,满足项目自定义需求,相关文章指导可参考https://blog.csdn.net/Ber_Bai/article/details/119960730?spm=1001.2014.3001.5501
Docker部署Java Web系统 1.在root目录下创建一个路径test/app mkdir test && cd test&& mkdir app &&cd app 2.将apache-tomcat-7.0.29.tar.gz及jdk-7u25-linux-x64.tar.gz拷贝 到app目录下 3.解压两个tar.gz文件 ...
在容器docker中部署tomcat,以及遇到的一些问题记录
PaddleOCR Docker 服务化 部署过程
1.从0到1部署前后分离项目安装docker,在liunx系统环境下,包含下载配置,以及常用的docker命令,此教程还是需要有一点docker基础的同学参考的。 1.从0到1部署前后分离项目安装docker,在liunx系统环境下,包含下载...