Java.io.IOException: проблема с чтением данных шрифта

Это работает на моей локальной машине. Но на сервере появилась эта ошибка.

java.io.IOException: Problem reading font data.
at java.awt.Font.createFont0(Font.java:1000) ~[na:1.8.0_191]
at java.awt.Font.createFont(Font.java:877) ~[na:1.8.0_191]
at th.co.application.modules.qr.QrGenerateService.createQrImageWithText(QrGenerateService.java:141) ~[classes!/:0.0.577]
at th.co.application.modules.event.EventBackendController.create(EventBackendController.java:404) [classes!/:0.0.577]
...

Мой старший сказал: «Эта проблема в том, что у меня нет разрешения на запись временного файла. Потому что сервер был AWS с автомасштабированием. (Разверните с помощью CI в Gitlab в Amazon ECS.)

DefaultResourceLoader loader = new DefaultResourceLoader();
InputStream fontFile = loader.getResource("classpath:static/fonts/MyCustomFont.ttf").getInputStream();

// Error in the line below.
Font font = Font.createFont(Font.TRUETYPE_FONT, fontFile).deriveFont(80f);

Graphics2D g = image.createGraphics();
g.setFont(font);
...

Как это решить? Могу ли я установить собственный временный каталог для этого случая?

Спасибо.

Можете ли вы добавить больше информации о том, как вы развертываете? Докер-контейнер или что?

Sukhpal Singh 26.02.2019 05:01

@SukhpalSingh Разверните с помощью CI в gitlab в Amazon ECS.

ThunderBirdsX3 26.02.2019 05:12

Пожалуйста, проверьте ваш базовый образ контейнера, если он включает в себя font-config, например, у alpine его нет.

Sukhpal Singh 26.02.2019 06:02

Вы нашли решение этой проблемы?

Conscript 11.03.2021 15:23
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
2
4
837
0

Другие вопросы по теме