Привет!
В томкате в lib есть библиотека commons-logging.jar
В проекте который деплоится в этом томкате и который собирается мавеном, тоже есть библиотека commons-logging.jar.
Соотвественно при деплое появляется ошибка связанная с тем что сщействует два одинаковых класса:
LogConfigurationException: org.apache.commons.logging.LogConfigurationException: org.apache.commons.logging.LogConfigurationException: Invalid class loader hierarchy. You have more than one version of 'org.apache.commons.logging.Log' visible, which is not allowed. (Caused by org.apache.commons.logging.LogConfigurationException: Invalid class loader hierarchy. You have more than one version of 'org.apache.commons.logging.Log' visible
Если из папки tomcat/lib убрать эту библиотеку (а в самом приложении в lib всё еще есть эта библиотека), пишет ошибку failed to initialize due to runtime exception: Error: java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
MV>попробовал в них указать provided но Всё равно получаю ошибку
MV>onstructor threw exception; nested exception is java.lang.NoClassDefFoundError: org/apache/log4j/Logger
Если provided в них не указывать то будет
You have more than one version of 'org.apache.commons.logging.Log' visible, which is not allowed.
У вас slf4j-log4j12 ссылается по своим зависимостям на log4j. Не знаю как переопределить зависимость в maven, в ivy это <override>, может в maven что-то подобное. Переопределите так чтобы ее не тащить вместе с slf4j-log4j12, это если вы точно уверены, что библиотека log4j будет в libах томкета.
"Не волнуйся, голова! Теперь будет думать компьютер"
Гомер Джей Симпсон
Здравствуйте, UDI, Вы писали:
UDI>У вас slf4j-log4j12 ссылается по своим зависимостям на log4j. Не знаю как переопределить зависимость в maven, в ivy это <override>, может в maven что-то подобное. Переопределите так чтобы ее не тащить вместе с slf4j-log4j12, это если вы точно уверены, что библиотека log4j будет в libах томкета.
мысль верная. Автор, посмотри на