Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 9444|Antwort: 1

Docker POI-Fehler-Ausnahmelösung

[Link kopieren]
Veröffentlicht am 09.11.2021 09:19:08 | | | |
Wenn POI zur Implementierung von Excel-Import und -Export verwendet wird, ist die lokale offene Umgebung normal, aber wenn sie als Docker-Image zum Start verpackt werden, lautet der Fehler wie folgt:



bei sun.awt.FontConfiguration.getVersion(FontConfiguration.java:1264)
        bei sun.awt.FontConfiguration.readFontConfigFile(FontConfiguration.java:219)
        bei sun.awt.FontConfiguration.init(FontConfiguration.java:107)
        bei sun.awt.X11FontManager.createFontConfiguration(X11FontManager.java:774)
        bei sun.font.SunFontManager$2.run(SunFontManager.java:431)
        at java.security.AccessController.doPrivileged(Native Method)
        unter sun.font.SunFontManager. <init>(SunFontManager.java:376)
        bei sun.awt.FcFontManager. <init>(FcFontManager.java:35)
        unter sun.awt.X11FontManager. <init>(X11FontManager.java:57)
        bei sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Methode)
        bei sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
        bei sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        bei java.lang.reflect.Constructor.newInstance(Constructor.java:423)
        bei java.lang.Class.newInstance(Class.java:442)
        bei sun.font.FontManagerFactory$1.run(FontManagerFactory.java:83)
        at java.security.AccessController.doPrivileged(Native Method)
        bei sun.font.FontManagerFactory.getInstance(FontManagerFactory.java:74)
        bei java.awt.Font.getFont2D(Font.java:491)
        bei java.awt.Font.canDisplayUpTo(Font.java:2060)
        bei java.awt.font.TextLayout.singleFont(TextLayout.java:470)
        unter java.awt.font.TextLayout. <init>(TextLayout.java:531)
        at org.apache.poi.ss.util.SheetUtil.getDefaultCharWidth(SheetUtil.java:285)
        at org.apache.poi.ss.util.SheetUtil.getColumnWidth(SheetUtil.java:259)
        bei org.apache.poi.ss.util.SheetUtil.getColumnWidth(SheetUtil.java:244)
        at org.apache.poi.xssf.usermodel.XSSFSheet.autoSizeColumn(XSSFSheet.java:523)
        at org.apache.poi.xssf.usermodel.XSSFSheet.autoSizeColumn(XSSFSheet.java:505)

Lösung

Nachdem ich das Basisimage ersetzt habe, habe ich ursprünglich openjdk:8-jdk-alpine verwendet und dann zu:openjdk:8u312-oraclelinux8ist das Problem gelöst und das POI-Paket kann normal verwendet werden.

Dockerfile



(Ende)




Vorhergehend:Die Datei oder der Ordner existiert nicht, wenn das Docker-Volume gemountet wird
Nächster:Java verändert die Konfigurationsdatei des War-Pakets
Veröffentlicht am 11.11.2021, 08:49:48 |
Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com