1

何かが足りないと思いますが、まったく見えません。

iTextを使用してPDFを作成していますが、これをBeanで実行したいと思います。作成しましたが、エラーが発生しています。私が通常Javaで作業してきた方法のいくつかは、このBeanでは機能しないようです。

たとえば、次の行です。

com.itextpdf.text.Document document1 = new com.itextpdf.text.Document();

jarがビルドパスにインポートされ、com.itextpdf.text.DocumentがBeanにインポートされている場合でも、エラーjava.lang.NoClassDefFoundError:com.itextpdf.text.Documentがスローされます。

これに変更した場合:

com.itextpdf.text.Document document1;

また

com.itextpdf.text.Document document1 = null;

エラーはなくなります。一方の方法が機能し、もう一方の方法が機能しない理由はわかりませんが、変更するのはかなり簡単です。

次に、ページサイズを設定する必要があります。これはEclipseで機能します。

 document1.setPageSize(PageSize.LETTER);

しかし、これは私が得るエラーです:

java.lang.NoClassDefFoundError:com.itextpdf.text.PageSize

これは、初期化するためにnullに設定したことが原因である可能性があります。だが

document1 = new Document();

document1 = new com.itextpdf.text.Document();

両方ともjava.lang.NoClassDefFoundErrorをスローします:com.itextpdf.text.Document

奇妙なことに、(iText)Documentのimportステートメントは、使用されないことを警告しています。

document1.open();

エラーjava.lang.NoClassDefFoundError:com.itextpdf.text.Documentも表示されます。

それで、私はBeanの構文に何かが欠けていますか?Notes Javaエージェント、XAgent、および動作するJava Eclipseプロジェクトを作成しましたが、8.5.3JavaBeanでメソッドを動作させることができません。iTextjarをWebContent\WEB-INF \ libにインポートし、それらをビルドパスに追加しました(外部jarを追加するのではなく、jarを追加することで)。私は最新のjarファイルを入手し、それらを使用しています。ビルドしてクリーニングしました。Beanはfaces-configにあります。しかし、私は何か間違ったことをしていて、それを見ることができません。

誰かが私を正しい方向に向けることができれば、私はとても感謝しています。

乾杯、ブライアン

編集:ライセンスは問題ではありませんが、classLoaderを使用してもクラスをロードできません:

    Thread currentThread = Thread.currentThread();
ClassLoader clCurrent = currentThread.getContextClassLoader();
        //ClassLoader clCurrent=com.ibm.domino.xsp.module.nsf.NotesContext.getCurrent().getModule().getModuleClassLoader();
        try {
            currentThread.setContextClassLoader(Activator.class.getClassLoader());
            DebugToolbar.get().info("after setting up FileOutputStream");
            com.itextpdf.text.Document document1 = new com.itextpdf.text.Document();
            //com.itextpdf.text.Document document1;
            //com.itextpdf.text.Document document1 = null;
            //document1 = new com.itextpdf.text.Document();
            //document1.open();
            document1.setPageSize(PageSize.LETTER);

私はまだjava.lang.NoClassDefFoundErrorを取得します:com.itextpdf.text.Document

私は豆を切り取り、きれいにし、作り、貼り付け、きれいに作りましたが、それでもエラーです。

支援に感謝します。ブライアン

4

2 に答える 2

0

ほとんどの場合、クラスローダーに問題があります。アプリが厳密に内部使用でない限り、GPL であるため、iText の使用を再検討することができます。Apache PDFBoxは、Apache ライセンスの代替品 (私が特に気に入っています) または Apache FOP ([2 つの不足している記事]( http://www.wissel.net/blog/htdocs/DominoXSLT ) を完成させます、約束します) です。もちろん、OpenNTF のPOI4XPagesはまさにあなたが必要としているものかもしれません。

于 2013-03-01T01:09:06.650 に答える