Dit artikel is een spiegelartikel van machinevertaling, klik hier om naar het oorspronkelijke artikel te gaan.

Bekijken: 9444|Antwoord: 1

Docker POI-foutuitzonderingoplossing

[Link kopiëren]
Geplaatst op 9-11-2021 09:19:08 | | | |
Bij het gebruik van POI om Excel-import en -export te implementeren, is de lokale open omgeving normaal, maar wanneer je als docker-image wordt verpakt om te starten, is de foutmelding als volgt:



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

oplossing

Door de basisimage te vervangen, gebruikte ik oorspronkelijk openjdk:8-jdk-alpine, waarna ik overstapte naar:openjdk:8u312-oraclelinux8, het probleem is opgelost en kan het POI-pakket normaal worden gebruikt.

Dockerfile



(Einde)




Vorig:Het bestand of de map bestaat niet wanneer het Docker-volume wordt gemounted
Volgend:Java wijzigt het configuratiebestand van het war-pakket
Geplaatst op 2021-11-11 08:49:48 |
Disclaimer:
Alle software, programmeermaterialen of artikelen die door Code Farmer Network worden gepubliceerd, zijn uitsluitend bedoeld voor leer- en onderzoeksdoeleinden; De bovenstaande inhoud mag niet worden gebruikt voor commerciële of illegale doeleinden, anders dragen gebruikers alle gevolgen. De informatie op deze site komt van het internet, en auteursrechtconflicten hebben niets met deze site te maken. Je moet bovenstaande inhoud volledig van je computer verwijderen binnen 24 uur na het downloaden. Als je het programma leuk vindt, steun dan de echte software, koop registratie en krijg betere echte diensten. Als er sprake is van een inbreuk, neem dan contact met ons op via e-mail.

Mail To:help@itsvse.com