Я верю, что у меня может быть ответ на этот вопрос.Недавно я наткнулся на ту же самую трассировку стека, когда перекомпилировал старое приложение.Я случайно использовал 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.