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验证码服务,发现恢复正常
分享到:
相关推荐
在Linux环境中部署Web应用时,可能会遇到登录页面中的验证码无法正常显示的问题。这一现象不仅降低了用户体验,还可能导致用户无法正常登录系统,严重影响了系统的可用性。本文将深入探讨这一问题的原因,并提供具体...
12. **容器与部署**:Tomcat、Jetty等应用服务器可能用于运行和部署项目,同时Docker容器化技术也可能被用来简化部署流程,确保环境一致性。 这个网上书店Java项目为学习者提供了实战练习的机会,涵盖了Web开发的多...
在线考试项目是一个基于Java技术构建的应用程序,它旨在提供一个平台,使得教育机构或个人能够进行线上测试和评估。这个项目的核心目标是实现便捷、高效和安全的远程考试功能,以便于教学管理和学习过程的数字化。 ...
本项目"springboot+vue实现招聘平台(系统)"结合了SpringBoot的后端能力与Vue.js的前端优势,实现了邮箱验证码注册验证的功能,为学习者提供了一个完整的软件开发实例,涵盖了从需求分析、系统设计、编码实现到测试...
7. **部署与运行**:系统可能在Tomcat、Jetty等Servlet容器中运行,或通过Docker等容器化技术进行部署,实现环境隔离和快速扩展。 8. **测试与调试**:单元测试(JUnit)、集成测试(TestNG)和性能测试(Apache ...
在本项目"javaWEB当当网"中,我们聚焦于...总的来说,"javaWEB当当网"项目涵盖了完整的电商网站开发流程,从用户交互到后端逻辑,再到数据管理,涉及到的技术广泛且深入,对于学习和实践Java Web开发具有很高的价值。
通过这个系统,我们可以深入理解Java框架在实际项目中的应用,以及如何利用这些技术解决实际问题。 首先,Java框架的选择通常基于其稳定性和灵活性。在这个项目中,可能是Spring框架被用作核心的依赖注入...
3. **Tomcat**:Tomcat是一个流行的Java Servlet容器,用于部署和运行Java Web应用程序。在购物商城项目中,它负责解析HTTP请求,并将响应返回给客户端。 二、核心模块 1. **用户模块**:包括用户注册、登录、个人...
最后,将项目部署到服务器,例如使用Docker进行容器化部署,以实现快速、灵活的环境部署。 通过这个项目,开发者不仅能掌握SpringBoot和微信小程序的开发技能,还能了解数据库设计、SSM框架整合以及支付接口的使用...
7、基于Java平台开发,采用Spring、MySQL、Tomcat、Apache Kafka、Redis等开源技术,支持微服务,扩展性强。 8、许可证 Apache License, Version 2.0,开源免费。 源码更新日志: MaxKey单点登录认证系统 更新v...
部署方面,Spring Boot的jar包可直接运行,也可以通过Docker容器化部署,实现灵活的环境部署。 综上所述,Spring Boot用户管理系统利用了Spring Boot的自动化配置和便捷性,结合Java Web的JSP技术,构建了一个功能...
1.2 内嵌式容器:项目无需额外配置Web服务器,SpringBoot自带内嵌的Tomcat或Jetty服务器,简化了部署流程。 1.3 精简依赖:Maven或Gradle的"starters"模块,使得添加新功能只需简单声明依赖,避免了版本冲突问题。 ...
2. **Webapps目录结构**:在Java Web应用中,`webapps`目录是Tomcat等Web服务器的标准部署目录,包含Web应用的所有资源,如HTML、CSS、JavaScript文件、JSP页面、WEB-INF目录(其中放置web.xml配置文件)以及WEB应用...
9. **部署与运行**:项目完成后,可能通过Docker容器化部署到服务器,如Tomcat或Nginx,前端资源通过Webpack打包后与后端服务进行整合。用户可以通过浏览器或微信小程序访问在线花店,享受流畅的购花体验。 10. **...
在JavaWeb开发中,首先会使用IDE(集成开发环境)如Eclipse或IntelliJ IDEA进行项目创建,选择Web项目类型,然后配置相关的服务器,如Tomcat或Jetty,这些服务器用于运行和部署Web应用。 系统的核心部分通常包括...
在SpringBoot的背景下,该项目可能利用了Spring Boot的自动配置、内嵌Web服务器(如Tomcat)以及对Spring框架的简化集成,以快速搭建起后端服务。Spring Data JPA可能会被用来方便地操作数据库,如MySQL或PostgreSQL...
【标题】基于SpringBoot等框架的民宿系统是一个利用现代Java技术栈开发的Web应用程序,旨在为用户提供便捷的民宿预订服务。这个系统可能结合了Spring Boot、Spring MVC、MyBatis等流行框架,以提高开发效率并实现...
8. **部署与运行**:Java应用可能被打包为WAR或JAR文件,然后部署在Tomcat、Jetty等应用服务器上,或者使用Docker容器化技术进行部署。 9. **安全性**:考虑到用户认证,代码可能还需考虑防止SQL注入、XSS攻击等...
通过实际操作,可以深入理解SpringBoot的自动配置机制、MVC模式、数据库操作等核心概念,同时还能了解到项目开发的完整流程,包括需求分析、设计、编码、测试和部署等环节。 总之,"springboot农机电招平台"项目是...
SpringBoot单体项目通用脚手架是基于Spring Boot框架构建的一种高效、便捷的开发工具,旨在简化Spring应用的初始搭建以及开发过程。Spring Boot的核心理念是“约定优于配置”,它通过自动化配置,使得开发者能够快速...