Frage

Wir sind mit Coldfusion MX7.

Der cfdocument Tag verwendet iText für die PDF-Erstellung, so dass die Gesamtheit der iText Bibliothek wird in dem Standard-CF-Einsatz enthalten.

Das Problem, das ich habe ist, dass ich eine Version von iText verwenden möchten, die neuer als die in CF7 enthalten ist. Ich brauche cfdocument funktionsfähig zu halten, so einfach die JAR-Datei zu ändern, ist keine Option.

Was habe ich bisher getan ist, die iText Quelle in Eclipse zu laden und zu einem anderen Namen Refactoring. Das funktioniert gut und hat sich dabei für etwa ein Jahr.

Aber ich möchte auf die neueste iText Release aktualisiert und durch die Reifen springen wieder von Refactoring ist ein bisschen einschüchternd.

Gibt es einen einfacheren Weg, um die Gläser und nicht haben sie mit der alten Version in Konflikt zu laden?

War es hilfreich?

Lösung

Eine Möglichkeit ist es, die JavaLoader.cfc zu verwenden, um eine neuere Version des Glases zu laden. Da es einen externen Classloader verwendet, kann es, ohne die vorhandene Version verwendet werden.

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

http://javaloader.riaforge.org/

Allerdings wäre es noch Ihre create erfordert Umschreiben ( "java", "path.to.class") Aussagen javaLoader.create ( "path.to.class") stattdessen zu verwenden. Aber auf lange Sicht, das könnte besser sein, als Refactoring, weil es einfacher wäre, die iText Glas in der Zukunft zu aktualisieren.

Andere Tipps

Itext gerade freigegeben v5.0.0 und eine der wesentlichen Änderungen daran ist, dass die Paketnamen von „com.lowagie“ geändert wurde in „com.itextpdf“ so dass Sie koexistieren.

Laden Sie einfach die neue iText.jar Datei und benennen Sie auf „iTextpdf.jar“ und suchen Sie sie in der richtigen LIB-Ordner für CFMX.

Wenn Sie Ihre Anrufe create tun, verwenden Sie einfach den neuen Paketnamen Pfad.

Javaloader ist ein hervorragendes Programm, aber wenn Sie es nicht in den Gültigkeitsbereich Server geladen werden (der Anfangslader mit Pfaden zum iText jar) und sicherzustellen, dass es nur einmal geladen wird, können Sie schwere Speicherleck Probleme laufen in.

Mit der neuesten Refactoring von iText bedeutet, Sie brauchen sich keine Sorgen darüber.

wenn, was Sie wollen, dass die CF8 Funktionalität von cfdocument ist, dann könnte es einen einfacheren Weg geben. nicht vergessen, dass Railo und OpenBD beide haben cfdocument Funktionalität, die auf einer Stufe mit CF8 ist und beide sind kostenlos Motoren. was Sie tun können, ist downloaden und zu einem dieser Motoren auf demselben Server oder einem anderen installieren, falls gewünscht. dann schreiben Sie eine Webservice in Railo oder OpenBD, die die cfdocument Funktionalität wickelt und gibt die pdf für Sie.

es ist nicht die schönste Lösung, aber weder ist Refactoring itext oder Hacking die itext Version, die mit cf kam.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top