1

私のパッケージ モデルは、EAR に 2 つの war ファイルがあり、すべての一般的な jar ファイルが EAR/lib ディレクトリに配置されているというものです。

一部の出力をPDF形式に印刷するためにapache fop jarを使用しています。出力を印刷しようとすると、以下の例外が発生します

`

    ]] Root cause of ServletException.
     java.lang.NoClassDefFoundError: org/apache/log4j/Category
        at org.apache.avalon.framework.logger.Log4JLogger.info(Log4JLogger.java:73)
        at org.apache.fop.fo.FOTreeBuilder.startDocument(FOTreeBuilder.java:239)
                                                                                                  om.sun.org.apache.xml.internal.serializer.ToSAXHandler.startDocumentInternal(ToSAXHandler.java:95)
        at com.sun.org.apache.xml.internal.serializer.SerializerBase.startDocument(SerializerBase.java:1216)
        at GregorSamsa.transform()
        Truncated. see log file for complete stacktrace

Caused By: java.lang.ClassNotFoundException: org.apache.log4j.Category
        at weblogic.utils.classloaders.GenericClassLoader.findLocalClass(GenericClassLoader.java:280)
        at weblogic.utils.classloaders.GenericClassLoader.findClass(GenericClassLoader.java:253)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
        at weblogic.utils.classloaders.GenericClassLoader.loadClass(GenericClassLoader.java:177)
        Truncated. see log file for complete stacktrace`

fop.jar が特定の戦争の一部であり、log4j.jar も特定の戦争に配置しようとしましたが、助けにはならなかったため、なぜそれが起こっているのかわかりません。

4

2 に答える 2

1

クラスローダーの問題であると思われます。使用しているアプリケーション サーバーを指定していませんが、どのサーバーであっても、アプリケーションをロードしているクラス ローダーで jar が使用できることを確認する必要があります。耳のクラスローダーと関連するポリシーの設定を確認してください。

于 2013-07-02T10:23:36.790 に答える
1

私はそれを最終的に機能させます。

実際、fop.jar は、戦争の一部ではなく、耳の共通の jar フォルダーの一部であった avalonXX.jar に依存しています。jarファイルをwar libディレクトリとVOILAに移動しました...コメントをありがとう

于 2013-07-02T11:31:07.103 に答える