Αυτό το άρθρο είναι ένα άρθρο καθρέφτη της αυτόματης μετάφρασης, κάντε κλικ εδώ για να μεταβείτε στο αρχικό άρθρο.

Άποψη: 9444|Απάντηση: 1

Λύση εξαίρεσης σφάλματος Docker POI

[Αντιγραφή συνδέσμου]
Δημοσιεύτηκε στις 2021-11-9 09:19:08 | | | |
Όταν χρησιμοποιείτε POI για την υλοποίηση εισαγωγής και εξαγωγής excel, το τοπικό ανοιχτό περιβάλλον είναι κανονικό, αλλά όταν συσκευάζεται ως εικόνα docker για εκκίνηση, το σφάλμα είναι το εξής:



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

λύση

Αντικαθιστώντας τη βασική εικόνα, αρχικά χρησιμοποίησα openjdk:8-jdk-alpine και μετά άλλαξα σε:openjdk:8u312-oraclelinux8, το πρόβλημα λύνεται και το πακέτο POI μπορεί να χρησιμοποιηθεί κανονικά.

Dockerfile



(Τέλος)




Προηγούμενος:Το αρχείο ή ο φάκελος δεν υπάρχει όταν είναι τοποθετημένος ο τόμος Docker
Επόμενος:Η Java τροποποιεί το αρχείο ρυθμίσεων του πακέτου πολέμου
Δημοσιεύτηκε στις 2021-11-11 08:49:48 |
Αποκήρυξη:
Όλο το λογισμικό, το υλικό προγραμματισμού ή τα άρθρα που δημοσιεύονται από το Code Farmer Network προορίζονται μόνο για μαθησιακούς και ερευνητικούς σκοπούς. Το παραπάνω περιεχόμενο δεν θα χρησιμοποιηθεί για εμπορικούς ή παράνομους σκοπούς, άλλως οι χρήστες θα υποστούν όλες τις συνέπειες. Οι πληροφορίες σε αυτόν τον ιστότοπο προέρχονται από το Διαδίκτυο και οι διαφορές πνευματικών δικαιωμάτων δεν έχουν καμία σχέση με αυτόν τον ιστότοπο. Πρέπει να διαγράψετε εντελώς το παραπάνω περιεχόμενο από τον υπολογιστή σας εντός 24 ωρών από τη λήψη. Εάν σας αρέσει το πρόγραμμα, υποστηρίξτε γνήσιο λογισμικό, αγοράστε εγγραφή και λάβετε καλύτερες γνήσιες υπηρεσίες. Εάν υπάρχει οποιαδήποτε παραβίαση, επικοινωνήστε μαζί μας μέσω email.

Mail To:help@itsvse.com