我们正在使用ColdFusion MX7。
CFDOCUMENT标签使用iText进行PDF创建,因此整个iText库都包含在标准CF部署中。
我遇到的问题是我想使用比CF7中包含的版本更新的iText版本。我需要保持CFDOCUMENT功能,所以只需更改jar文件就不是一种选择。
到目前为止,我所做的是将iText源加载到Eclipse中并将其重构为其他名称。这很好,并且已经这样做了大约一年。
但是,我想升级到最新的iText版本,再次跳过重构的过程有点令人生畏。
是否有更简单的加载罐子的方法,而不是让它们与旧版本冲突?
答案 0 :(得分:5)
一种选择是使用JavaLoader.cfc加载更新版本的jar。由于它使用外部类加载器,因此可以在不影响现有版本的情况下使用它。
http://www.transfer-orm.com/?action=javaloader.index
http://javaloader.riaforge.org/
但是,仍然需要重写createObject(“java”,“path.to.class”)语句来使用javaLoader.create(“path.to.class”)。但从长远来看,这可能比重构更好,因为将来更新iText jar会更容易。
答案 1 :(得分:2)
Itext刚刚发布了v5.0.0,其中一个重大变化是包名已从“com.lowagie”更改为“com.itextpdf”,允许您共存。
只需下载新的iText.jar文件并重命名为“iTextpdf.jar”并将其找到CFMX的正确LIB文件夹中。
执行createObject调用时,只需使用新的包名称路径。
JavaLoader是一个很棒的实用程序,但如果你不将它加载到服务器作用域(带有iText jar路径的初始加载器)并确保它只加载ONCE,你可能会遇到严重的内存泄漏问题。
使用iText的最新重构意味着您无需担心它。
答案 2 :(得分:0)