Похоже, у вас загружено 2 копии, одна в tomcat и однажды в ваших банках WEB-INF / lib или другом пути к классу вашего развернутого приложения.
Причина, по которой вы получаете исключение classpath, заключается в том, чтоВОЙНА ищет классы.Вопреки обычным правилам Java, война сначала ищет внутри войны класс и только затем передает запрос родительскому загрузчику классов.
Идентификация класса зависит от загрузчика классов и того же класса, загруженного в 1 загрузчик классовсгенерирует исключение classcast, когда оно преобразуется в другой загрузчик классов.
Решение состоит в том, чтобы убедиться, что война не содержит классов, которые должны быть предоставлены контейнером.Если вы используете maven, вы можете пометить эти зависимости как «предоставленные», если вы используете ant, вам придется разделить ваш список пути к классам на 2 и скомпилировать оба, но использовать только те, которые вам нужны для построения войны.