исключение java log4j в категории - PullRequest
1 голос
/ 31 декабря 2011

В моем тестовом приложении я получаю следующее исключение

java.lang.NullPointerException
at org.apache.log4j.CategoryKey.<init>(CategoryKey.java:20)
at org.apache.log4j.Hierarchy.getLogger(Hierarchy.java:252)
at org.apache.log4j.Hierarchy.getLogger(Hierarchy.java:233)
at org.apache.log4j.LogManager.getLogger(LogManager.java:179)
at org.apache.log4j.Category.getInstance(Category.java:514)

Несмотря на то, что я использую строку

static final Logger logger1 = Logger.getLogger(Test.class);

Может кто-нибудь помочь мне решить эту проблему ....

Спасибо

Ответы [ 3 ]

0 голосов
/ 28 марта 2013

Я верю, что у меня может быть ответ на этот вопрос.Недавно я наткнулся на ту же самую трассировку стека, когда перекомпилировал старое приложение.Я случайно использовал Java 1.6 для компиляции своего приложения, которое изначально было построено на Java 1.4.Затем я развернул его вместе с log4j-1.2.8 внутри контейнера weblogic 8 под управлением виртуальной машины Java 1.4.Поэтому мое веб-приложение, скомпилированное под javac из 1.6, было перенесено в weblogic, и я нажал кнопку развертывания.Взрыв!Получил ту же трассировку стека, как показано здесь.

Наконец-то мне пришло в голову, что это может быть проблема кросс-версии.Насколько я могу судить, виртуальная машина Java 1.4 загрузила мой новый класс и попыталась его инициализировать.Когда мой новый класс динамически связывался с более старой библиотекой log4j, что-то в разрешении class.getName не смогло вернуть действительную строку, и ноль было передано классу Logger вместо допустимой строки.

Я исправилмоя проблема, заставив мой скрипт сборки использовать компилятор java 1.4.

0 голосов
/ 10 февраля 2014

Я получил то же исключение, когда имя моего регистратора было пустым:

Logger.getLogger(null);

Когда я сменил имя лугера на какую-то строку или класс, проблема была решена:

Logger.getLogger(MyClass.class);

или

Logger.getLogger("MyLoggerName");
0 голосов
/ 31 декабря 2011

Странно, я немного искал, и NPE вызван пустым именем категории, но когда вы указываете Logger.getLogger(Test.class), у вас не должно быть этой проблемы.Я рекомендую получить исходный код log4j и отладить его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...