当我们从Oracle JDK-8迁移到Open JDK-11时,Apache POI excel生成存在问题
已经尝试“ -Djava.awt.headless = true”
org.springframework.web.util.NestedServletException:处理程序调度失败;嵌套的异常是java.lang.NoClassDefFoundError:无法初始化类sun.awt.X11FontManager 在org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1053) 在org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:942) 在org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:998) 在org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:901) 在javax.servlet.http.HttpServlet.service(HttpServlet.java:660) 在org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:875) 在javax.servlet.http.HttpServlet.service(HttpServlet.java:741) 在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) 在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) 在org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) 在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) 在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
答案 0 :(得分:1)
如果您使用的是openjdk的docker 'slim images',则映像不再包含软件包'fontconfig'和'libfreetype6'。
检查openjdk:11-slim的docker file和openjdk:8-slim的docker file之间的差异。
您可以选择另一个docker映像(例如openjdk:11-windowsservercore
),也可以将软件包自己安装在docker文件中:
RUN apt-get update; apt-get install -y fontconfig libfreetype6
答案 1 :(得分:0)
根本问题是其他问题
我刚刚创建了一个简单的类,该类可以在运行时加载X11FontManager 它抱怨
unable to link "libfreetype6"
一旦我使用
安装了它apt-get install libfreetype6
开始投掷无法链接“ libfontconfig1.so”
apt-get install libfontconfig1
已解决问题
答案 2 :(得分:0)
2021-06-23 03:44:37.950 INFO 1 --- [ Thread-7] ReportService : Template path : /jasper/MgmtSummary.jrxml
Exception in thread "Thread-7" java.lang.NoClassDefFoundError: Could not initialize class sun.awt.X11FontManager
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:398)
我在使用 docker image gcr.io/distroless/java-debian10:11
当我将图像更改为 adoptopenjdk/openjdk11