ClassNotFoundException при использовании пользовательских библиотек в пути сборки Eclipse - PullRequest
38 голосов
/ 10 августа 2011

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

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

Ответы [ 2 ]

95 голосов
/ 10 августа 2011

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

enter image description here

3 голосов
/ 10 августа 2011

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

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

...