Конфликт Fop и xmlgraphics jar
У меня есть тяжелое монолитное приложение-проводник, в котором есть и fop.jar, и xmlgraphics-commons.jar. Итак, я пытаюсь добавить изображение в файл PDF, который должен отображаться с помощью xmlgraphics-commons.jar. В этой банке доступно около 5/6 визуализаторов изображений.
Теперь, когда я пытаюсь распечатать этот pdf-файл, фляга fop используется для отображения другого текста в pdf-файле, а для изображения используется xmlgraphics-commons.jar внутри фляги fop. Эта конкретная версия той же банки каким-то образом имеет только 2 декодера изображений, и хотя я пытался сопоставить формат SVG/WMF, он все равно не работает. Я получаю эту ошибку «No-ImagePreloader Found». Это приложение gw работает правильно на моем локальном компьютере, но при развертывании в веб-сфере оно выдает эту ошибку. Может быть, что-то из-за политики загрузчика классов.
Я не могу использовать пользовательский загрузчик классов, так как я не контролирую код здесь, потому что вызов java происходит внутри, поскольку я использую файлы .pcf для печати PDF. Я изучил jar-файлы fop и xmlgraphics-commons и ясно увидел разницу в файлах Meta-Inf Services.
Что я могу сделать, чтобы заставить это работать? Может быть, есть простое решение, которое я упускаю. Я могу работать только с этими банками.
Я проверил некоторые подобные вопросы, но они мне не помогают. Также этот нижеприведенный поток может помочь вам лучше понять суть моей проблемы. Apache FOP в Java-апплете — для данных не найден ImagePreloader
Я попытался обновить файл «org.apache.xmlgraphics.image.loader.spi.ImageLoader» в meta-inf/services fop, чтобы дать реализацию из моего внешнего файла jar xmlgraphics. Получил ту же ошибку.
Если бы это приложение было maven, я бы просто исключил эту xmlgraphics из fop и использовал внешний.