Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 9444|Відповідь: 1

Docker POI error exception solution

[Копіювати посилання]
Опубліковано 2021-11-9 09:19:08 | | | |
При використанні POI для реалізації імпорту та експорту в Excel локальне відкрите середовище є нормальним, але при упаковці як образ docker для початку помилка виглядає так:



at sun.awt.FontConfiguration.getVersion(FontConfiguration.java:1264)
        at sun.awt.FontConfiguration.readFontConfigFile(FontConfiguration.java:219)
        на sun.awt.FontConfiguration.init(FontConfiguration.java:107)
        at 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)
        на sun.reflect.NativeConstructorAccessorImpl.newInstance0 (Native Method)
        на sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
        на 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)
        at org.apache.poi.ss.util.SheetUtil.getDefaultCharWidth(SheetUtil.java:285)
        at org.apache.poi.ss.util.SheetUtil.getColumnWidth(SheetUtil.java:259)
        at 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 змінює конфігураційний файл пакету war
Опубліковано 2021-11-11 08:49:48 |
Застереження:
Усе програмне забезпечення, програмні матеріали або статті, опубліковані Code Farmer Network, призначені лише для навчання та досліджень; Вищезазначений контент не повинен використовуватися в комерційних чи незаконних цілях, інакше користувачі несуть усі наслідки. Інформація на цьому сайті надходить з Інтернету, і спори щодо авторських прав не мають до цього сайту. Ви повинні повністю видалити вищезазначений контент зі свого комп'ютера протягом 24 годин після завантаження. Якщо вам подобається програма, будь ласка, підтримуйте справжнє програмне забезпечення, купуйте реєстрацію та отримайте кращі справжні послуги. Якщо є будь-яке порушення, будь ласка, зв'яжіться з нами електронною поштою.

Mail To:help@itsvse.com