2017-01-27 17 views
2

Для генерации PDF в AEM, я использую комбинацию Apache FOP API + XSL: FO + OOTB AEM трансформатораКак заботиться о папке кэша фат шрифта, который бросает исключение

Вопрос заключается в том, что я столкнулся эта ошибка

java.lang.UnsupportedOperationException:
Десериализация не допускаются к классу org.apache.fop.fonts.FontCache

это приходит из-за которой PDF генерируется являются н от открытия и дает 500.

Я решил проблему локально, удалив папку «.fop» (содержащую документ fop-fonts.cache), который создается параллельно с .m2. Как только я удалил эту папку и сделал сборку maven, я смог правильно просмотреть PDF-файлы, и исключение не появилось снова.

Но эта проблема также подходит к QA и другим серверам и с перерывами в моем местном. Так может ли кто-нибудь предложить, какое может быть постоянное решение для него или какие-либо вспомогательные входы для ошибки выше?

ответ

0

AFAIK, .fop каталог необходимо удалить, если указанные шрифты не загружаются. FOP вынужден повторно разбирать все шрифты, когда это происходит, и поскольку это немного прерывисто в разных средах (согласно вашему вопросу), я бы предположил, что некоторые ссылочные шрифты отсутствуют.

Вы можете попробовать один из следующих подходов:

  • Установить шрифты как часть вашего окружения сборки (не менее предпочтительный вариант).
  • Исправьте ссылки на шрифты, если вы используете подстановочные знаки (например. *) Для привязки к существующим общим шрифтам. (Май разрушает стиль, но будет в основном совместимым)
  • Вставить шрифты. (Увеличить размер документа)
  • Замените шрифты. (Опять же, это может ухудшить стиль)

Я бы порекомендовал вам выбрать подходящую опцию сверху, основанной на вашем объеме распространения PDF.

Надеюсь, что это поможет.

+0

Привет, спасибо за ваш ответ. Но уже шрифты являются частью моей кодовой базы под/etc/clientlibs. Тем не менее, я получаю эту ошибку. Любой другой указатель или помощь для меня для разрешения java.lang.UnsupportedOperationException: Дезериализация не разрешена для класса org.apache.fop.fonts.FontCache. Я все еще смотрю на него – user3837000

+0

Можете ли вы опубликовать журналы компиляции? Шрифты должны быть разрешены при компиляции, иначе вы увидите предупреждение, например, «fount not found, replace» Если вы не видите никаких предупреждений, тогда должна быть хотя бы действительная информация привязки. Попробуйте использовать maven с ключом -X –

+0

При компиляции с использованием -X я не получаю ошибок в журналах, связанных со шрифтами. [INFO] Удаление файла /Users/user/Desktop/project/content/target/classes/etc/clientlibs/project/global/fonts/univers/UniversLTStd.woff [DEBUG] копия/Пользователи/пользователь/Рабочий стол/проект/content/src/main/content/jcr_root/etc/clientlibs/project/global/fonts/font-awesome/fontawesome-webfont.eot to/Пользователи/пользователь/Рабочий стол/проект/контент/цель/классы/etc/clientlibs/project /global/fonts/font-awesome/fontawesome-webfont.eot – user3837000