Я сталкивался с этой проблемой несколько раз и только наткнулся на (полу) надежное решение, поэтому подумал, что я опубликую его здесь, если оно кому-нибудь поможет, или если я забуду его, а такжеспросите, есть ли у кого-нибудь представление о том, что является основной причиной и почему мое исправление работает.
Проблема - у меня есть веб-приложение Spring 3, в котором я хочу использовать опцию Run on Server в Eclipse для запуска на Tomcat 7сервер.С некоторыми проектами это просто работает, но некоторые, кажется, приходят в неработоспособное состояние, при котором каждый раз, когда запускается сервер, я получаю класс, не найденный: org.springframework.web.servlet.DispatcherServlet.
После некоторого исследования яобнаружил, что maven-зависимости проекта не были скопированы в WEB-INF/lib
в ${PROJECT_LOCATION}/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/
Я пробовал много вещей, прежде чем, наконец, заметил, что у проекта есть предупреждение на панели «Проблемы»:
Classpath entry org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER
will not be exported or published. Runtime ClassNotFoundExceptions may result.
Возможно, я должен был заметить это раньше.
В любом случае, выбор этого и выполнение «Быстрого исправления» устраняет проблему, и я могу с удовольствием запустить свой проект.Быстрое решение состоит в следующем: «Пометить связанную необработанную запись пути к классу как зависимость публикации / экспорта».
Проблема в том, что, хотя это работает, я не знаю, что это значит.Я не вижу никаких явных изменений в конфигурации моего проекта после того, как он сделан.Мне бы очень хотелось узнать, в чем заключается настоящая проблема и могу ли я избежать ее повторения.Я также хотел бы знать, если бы я мог что-то сделать сам (кроме выполнения быстрого исправления), который бы это исправил, потому что я чувствую, что попробовал почти все остальное.
Спасибо за вашу помощь.