在类路径中找不到Log4J

时间:2013-07-02 10:20:58

标签: java

我的包模型是我在EAR中有两个war文件,所有常见的jar放在EAR / lib目录中。

我正在使用apache fop jar将一些输出打印成PDF格式。现在,当我尝试打印输出时,我得到了下面的例外

`

    ]] 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放在specfici战争中,但没有帮助。

2 个答案:

答案 0 :(得分:1)

我怀疑这是一个类加载器问题。虽然您没有指定正在使用的应用服务器,但无论哪一个,都需要确保jar可用于加载应用程序的类加载器。检查您的耳朵类加载器和相关策略的设置。

答案 1 :(得分:1)

我最终让它发挥作用。

实际上fop.jar依赖于avalonXX.jar,它不是战争的一部分,而是耳中常见jar文件夹的一部分。我将jar文件移动到war lib目录和VOILA ...感谢评论