ClassNotFoundException при использовании пользовательских библиотек в пути сборки Eclipse

Я использую Eclipse 3.7 (STS) с Tomcat 7, работающим внутри IDE. Я создал новый динамический веб-проект и добавил один файл JSP в корневую папку веб-материалов. Я могу запустить Tomcat и получить доступ к JSP из Eclipse без проблем.

Я добавил несколько сторонних JAR-файлов в проект из пользовательских библиотек (я не использую maven или управление авто-зависимостями). В JSP, на который я ссылаюсь на класс из JAR-файла проекта, я могу без проблем скомпилировать его, но при развертывании в Tomcat JSP выдает исключение ClassNotFoundException. Очевидно, что Tomcat не может найти JAR-файлы из настроек моей библиотеки. Я попытался создать конфигурацию запуска от имени для Tomcat Server, и я установил classpath в соответствии с настройками classpath проекта, но у меня все еще возникает та же проблема, что и поиск класса.

Я мог бы обойти эту проблему, вручную скопировав все JAR-файлы проекта в каталог WEB-INF/lib, чтобы веб-приложение могло найти все зависимости, но это абсурдно, и я не ожидаю, что это будет решением, так как это кошмар обслуживания.

Я что-то пропустил?

2 ответа

Решение

В свойствах проекта перейдите в Deployment Assembly. Добавьте туда также записи buildpath, которые вы добавили вручную в качестве пользовательских библиотек. Это закончится в /WEB-INF/lib развернутой войны.

Вам нужно будет скопировать файлы JAR в папку WEB-INF/lib: именно там они и должны быть.

Eclipse должен предложить вам возможность создания файла WAR, который включает все зависимости: я давно не пользовался Web Tools, но так или иначе все зависимости должны быть в WEB-INF/lib или загрузчик классов победил ' не сможет их найти.

Другие вопросы по тегам