Вопрос

Мы используем ColdFusion MX7.

Тег CFDOCUMENT использует iText для создания PDF-файла, поэтому вся библиотека iText включена в стандартное развертывание CF.

Проблема, с которой я столкнулся, заключается в том, что я хочу использовать версию iText, которая новее, чем та, которая включена в CF7.Мне нужно поддерживать работоспособность CFDOCUMENT, поэтому простое изменение файла jar - это не вариант.

Что я сделал до сих пор, так это загрузил исходный текст iText в Eclipse и реорганизовал его под другим именем.Это работает нормально и работает уже около года.

Тем не менее, я хотел бы обновиться до новейшей версии iText, и снова перепрыгивать через этапы рефакторинга немного сложно.

Есть ли более простой способ загрузить банки так, чтобы они не конфликтовали со старой версией?

Это было полезно?

Решение

Один из вариантов - использовать JavaLoader.cfc для загрузки более новой версии jar.Поскольку он использует внешний загрузчик классов, его можно использовать, не нарушая существующую версию.

http://www.transfer-orm.com/?action=javaloader.index

http://javaloader.riaforge.org/

Однако, он все же потребует перезаписи функция createobject("Ява", "path.to.class") заявления использовать javaLoader.создать("path.to.class") вместо этого.Но в долгосрочной перспективе это может быть лучше, чем рефакторинг, потому что в будущем будет проще обновить iText jar.

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

Itext только что выпустил версию 5.0.0, и одним из существенных изменений в ней является то, что имя пакета было изменено с "com.lowagie" на "com.itextpdf", что позволяет вам сосуществовать.

Просто скачайте новые iText.jar файл и переименовать в "iTextpdf.jar" и поместить его в соответствующую папку lib для CFMX.

Когда вы выполняете вызовы CreateObject, просто используйте новый путь к имени пакета.

JavaLoader - отличная утилита, но если вы не загружаете ее в область действия сервера (начальный загрузчик с путями к iText jar) И убедитесь, что она загружена только ОДИН РАЗ, вы можете столкнуться с серьезными проблемами утечки памяти.

Использование последней версии рефакторинга iText означает, что вам не нужно беспокоиться об этом.

если то, что вам нужно, - это функциональность cf8 cfdocument, то, возможно, есть более простой способ.помни об этом рейло и openbd оба имеют функциональность cfdocument, которая соответствует cf8, и оба являются бесплатными движками.что вы могли бы сделать, так это загрузить и установить один из этих движков на тот же сервер или, при желании, на другой.затем напишите веб-сервис в railo или openbd, который оборачивает функциональность cfdocument и возвращает вам PDF-файл.

это не самое красивое решение, но и не рефакторинг itext или взлом версии itext, поставляемой с cf.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top