Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 9444|Yanıt: 1

Docker POI hata istisnası çözümü

[Bağlantıyı kopyala]
2021-11-9 09:19:08 tarihinde yayınlandı | | | |
POI kullanılarak excel içe aktarma ve dışa aktarma uygulandığında, yerel açık ortam normaldir, ancak docker görüntüsü olarak paketlendiğinde hata şu şekildedir:



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

çözüm

Temel görselin yerine geçtim, başlangıçta openjdk:8-jdk-alpine kullandım, sonra şu şekilde değiştirdim:openjdk:8u312-oraclelinux8, sorun çözülür ve POI paketi normal şekilde kullanılabilir.

Dockerfile



(Son)




Önceki:Docker hacmi monte edildiğinde dosya veya klasör mevcut değildir
Önümüzdeki:Java, savaş paketinin yapılandırma dosyasını değiştirir
2021-11-11 08:49:48 tarihinde yayınlandı |
Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com