2013-07-02 3 views
1

Моя модель упаковки состоит в том, что у меня есть два военных файла в EAR, и все обычные банки помещаются в каталог EAR/lib.Log4J не найден в classpath

Я использую 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 в а также не помогать.

+0

Возможно, есть еще одна реализация log4j, используемая вашим сервлет-движком, который не имеет этого метода? – fge

+0

Его в пути к классам, как и все другие банки. – sidshu

+0

Да, но что, если у вашего _app server_ есть версия, которая имеет приоритет над вашим? – fge

ответ

1

Я заставляю его работать наконец.

На самом деле fop.jar имеет зависимость от avalonXX.jar, который не был частью войны, а являлся частью общей папки jar в ухе. Я переместил файл jar в каталог war lib и VOILA ... Спасибо за комментарии

1

Я подозреваю, что это проблема с загрузчиком класса. Хотя вы не указали сервер приложений, который вы используете, но независимо от того, какой из них вам нужно, убедитесь, что банка доступна для загрузчика классов, которая загружает ваше приложение. Проверьте настройки для загрузчика классов вашего уха и связанной с ним политики.

+0

Я использую сервер weblogic. Можете ли вы уточнить, как проверить установку загрузчика классов и политику – sidshu

+0

@sidshu Можете ли вы попытаться поместить лог44j в $ DOMAIN_DIR/lib? –

+0

подошел, он работает именно так, но теперь проблема заключается в том, что журналы для двух войн входят в один файл журнала. – sidshu

Смежные вопросы