NoClassDefFoundError: Не удалось инициализировать класс java .awt.image.DataBuffer -> При попытке загрузить изображение PNG в Spring Boot - PullRequest
1 голос
/ 26 февраля 2020

У меня есть приложение Spring Boot, которое в основном получает JSON со стороны клиента и создает / возвращает PDF.

Я могу загрузить JPG изображения без проблем. Но когда я загружаю PNG файлы, у меня возникает это исключение. Моё приложение Spring War Boot "war" работает внутри Tomcat.

Если я запускаю приложение Spring Boot с помощью "java -jar ...", оно работает хорошо.

  • Apache Tomcat / 9.0.29
  • Безголовая 64-разрядная виртуальная машина OpenJDK 1.8
  • Spring Boot 2.2.1
  • OpenPDF 1.3
  • CentOS Linux 7
2020-02-24 01:57:14,042 ERROR [http-nio-8080-exec-217] org.springframework.boot.web.servlet.support.ErrorPageFilter: Forwarding to error page from request [/pdf/create] due to exception [Could not initialize class java.awt.image.DataBuffer]
java.lang.NoClassDefFoundError: Could not initialize class java.awt.image.DataBuffer
    at javax.imageio.ImageTypeSpecifier.createComponentCM(ImageTypeSpecifier.java:249)
    at javax.imageio.ImageTypeSpecifier$Interleaved.<init>(ImageTypeSpecifier.java:305)
    at javax.imageio.ImageTypeSpecifier.createInterleaved(ImageTypeSpecifier.java:399)
    at javax.imageio.ImageTypeSpecifier.createSpecifier(ImageTypeSpecifier.java:1169)
    at javax.imageio.ImageTypeSpecifier.getSpecifier(ImageTypeSpecifier.java:1118)
    at javax.imageio.ImageTypeSpecifier.createFromBufferedImageType(ImageTypeSpecifier.java:901)
    at com.sun.imageio.plugins.png.PNGImageReader.getImageTypes(PNGImageReader.java:1531)
    at com.sun.imageio.plugins.png.PNGImageReader.readImage(PNGImageReader.java:1318)
    at com.sun.imageio.plugins.png.PNGImageReader.read(PNGImageReader.java:1614)
    at javax.imageio.ImageIO.read(ImageIO.java:1462)
    at javax.imageio.ImageIO.read(ImageIO.java:1357)
    at com.lowagie.text.ImageLoader.getPngImage(ImageLoader.java:76)
    at com.lowagie.text.Image.getInstance(Image.java:284)
    at com.company.myapp.service.pdf.pages.Page00.render(Page00.java:69)
    at com.company.myapp.service.pdf.pages.PageImpl.<init>(PageImpl.java:27)
    at com.company.myapp.service.pdf.pages.Page00.<init>(Page00.java:21)
    at com.company.myapp.service.PdfServiceImpl.getPDF(PdfServiceImpl.java:33)
    at com.company.myapp.controller.PdfController.generate(PdfController.java:40)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
...