Видя этот вопрос и другие вопросы , которые вы отправили, я чувствую, что вы делаете что-то не так. Вот только ответ, который должен все прояснить.
Вы должны никогда иметь отдельные копии библиотек, специфичных для servletcontainer, блуждающих в пути к классам.
Вы должны никогда помещать копии библиотек, относящихся к сервлетконтейнеру, в WEB-INF/lib
веб-приложения.
В IDE, такой как Eclipse, вы не должны никогда добавлять библиотеки, специфичные для servletcontainer, отдельно в пути сборки проекта.
Вкратце: просто не вообще не трогайте библиотеки, относящиеся к сервлет-контейнерам. Даже не думайте скачивать их отдельно. Это простой рецепт для неприятностей. Наличие отдельных библиотек разных сервлетконтейнеров делает только коллизии в classpath. Контейнер сервлета должен быть загружен и обработан как отдельный.
В Eclipse при интеграции сервлет-контейнера (Tomcat или Glassfish) просто добавьте его в представлении Серверы .
Чтобы связать динамический веб-проект с определенным сервлет-контейнером (сервером), чтобы вы могли компилировать сервлеты и т. Д., Вам нужно выбрать его в разделе Targeted Rumtimes свойств проекта. Тогда все пойдет хорошо в автоматическом режиме, благодаря умению Eclipse. Это также место для изменения реализации сервлет-контейнера при необходимости. Когда вы создаете новый динамический веб-проект, вы можете просто выбрать нужную реализацию сервлет-контейнера из раскрывающегося списка серверов в мастере.
Если вы хотите создать WAR, просто щелкните правой кнопкой мыши динамический веб-проект, выберите Export и затем WAR-файл . Нет необходимости в отдельной задаче муравья или около того.