Сначала проверьте в <server>/conf/jboss-log4j.xml
конфигурацию приложения с именем FILE
(и, если сможете, опубликуйте его здесь - это может дать нам больше подсказок).
Дальнейшие исследования показывают, что org.jboss.logging.appender.FileAppender
фактически реализует интерфейс org.apache.log4j.Appender
. Так что это, по-видимому, конфликт загрузчика классов. Одно и то же определение класса (в данном случае org.apache.log4j.Appender
) при загрузке двумя разными загрузчиками классов считается как два разных класса для JVM.
Включен ли log4j.jar в вашу войну или в каталог вашего сервера / lib? Если это так, вы можете попробовать удалить его и посмотреть, решит ли он проблему.
Обновление: На самом деле самое простое из возможных решений - просто изменить тип аппендера на org.apache.log4j.FileAppender
в jboss-log4j.xml.
Что касается log4j.jar, я имею в виду, что если он присутствует в вашей войне, он (и копия org.apache.log4j.Appender
) загружается загрузчиком классов войны (BaseClassLoader@9a8d9b
в вашем сообщении об ошибке). И это вызывает конфликт загрузчика классов. Так что, если вы не развернете log4j.jar с вашей войной, ошибка может исчезнуть. Это связано с Maven только в том, что зависимость настроена в вашем pom. Для этого небольшого эксперимента вы можете просто удалить log4j.jar из вашей войны вручную; если это решает проблему, настройте зависимость log4j в pom как «предоставленную», например ::
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.12</version>
<scope>provided</scope>
</dependency>
Если log4j.jar отсутствует в вашей войне, он все еще может находиться в каталоге server / default / lib - проверьте это, и если он есть, попробуйте удалить его.