Как видно из заголовка, я получаю исключение класса при попытке заменить log4j/slf4j протоколирование протоколом ESAPI в моем коде , В частности, это происходит следующим способом:ClassCastException: org.apache.log4j.Logger не может быть передан в org.owasp.esapi.Logger
private Logger log()
{
return ESAPI.getLogger(getClass());
}
Ниже приведены импорт специфических к регистратору:
import org.owasp.esapi.ESAPI;
import org.owasp.esapi.Logger;
Что делает этот невероятна для меня является то, что есть ESAPI регистрация на месте и в других классы, которые работают отлично. По моему мнению, я думал, что если log4j loggers были на месте и работали тогда, было бы простым делом заменить ESAPI, поскольку это расширение. Мои log4j файл свойств также имеет loggerFactory определен -
log4j.loggerFactory=org.owasp.esapi.reference.Log4JLoggerFactory
Любые идеи относительно того, что может быть происходит? Это просто приложение java/struts/spring.
Если вы не хотите использовать log4j, почему это в вашем проекте? Просто удалите все импорт и все, и вместо этого используйте esapi. – Zarwan
Каков полный тип (включая пространство имен) «Logger» в вашем первом методе? Это должно быть 'org.owasp.esapi.Logger'. – Nitram
Даже с использованием org.owasp.esapi.Logger как возвращаемого типа метода я получаю то же исключение. Что касается возможности просто не использовать log4j, я, к сожалению, не могу сделать этот звонок. Увидев, как ESAPI работает в других разделах проекта, я не понимаю, почему я не могу поменять его здесь. – SchwarzePete