Предупреждение Eclipse: XXXXXXXXXXX.jar не будет экспортирован или опубликован. Runtime ClassNotFoundExceptions может привести
Я продолжаю получать следующую ошибку после того, как я поместил необходимые файлы в путь сборки на Eclipse. Я работаю над приложением Spring World MVC Hello World. Я использую Eclipse Helios для разработчиков Java EE:
Jan 16, 2012 1:25:42 PM org.apache.catalina.core.StandardContext loadOnStartup
SEVERE: Servlet /SpringMVCTutorial threw load() exception
java.lang.ClassNotFoundException: org.springframework.web.servlet.DispatcherServlet
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1676)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1521)
at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:415)
at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:397)
at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:118)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1062)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1010)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4957)
at org.apache.catalina.core.StandardContext$3.call(StandardContext.java:5284)
at org.apache.catalina.core.StandardContext$3.call(StandardContext.java:5279)
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Я попытался щелкнуть правой кнопкой мыши по серверу и нажать "очистить". Я щелкаю правой кнопкой мыши по приложению, нажимаю "Build Path", "Configure Build Path" и помещаю правильные файлы.jar в библиотеку; однако, это все еще не признает их как зависимости. Что мне не хватает?
Я попробовал совет, представленный в: eclipse helios: tomcat project - jar не будет экспортироваться или публиковаться. Время выполнения ClassNotFoundExceptions может привести
- Щелкните правой кнопкой мыши по вашему веб-проекту.
- Нажмите Свойства
- Выберите зависимости модуля Java EE
- Нажмите вкладку веб-библиотек
- Добавьте внешние баночки (если баночка находится за пределами вашего проекта). Запись будет добавлена в Jar/Module, убедитесь, что вы нажали на флажок (отмечен).
Проблема в том, что когда я выбираю "Свойства клика", у меня нет возможности щелкнуть зависимости модуля Java EE, поскольку она не отображается. Я скачал дополнительные инструменты Java EE и до сих пор не могу их найти.
4 ответа
Хорошо. Так что я понял это.,,
Чтобы заставить его работать правильно, я должен "перетащить" файлы, которые я хочу найти в моем classpath/ зависимость, в мой WEB-INF/lib
файл.
Это работает таким образом.
Почему-то, когда я пытаюсь сделать это правильно
путь сборки -> настроить путь сборки -> внешние файлы
это просто не займет.
Хитрость заключается в том, что мне нужно поместить файлы в папку "Библиотеки веб-приложений", и единственный способ сделать это (что я вижу:) - это "щелкнуть мышью" WEB-INF/lib
файл.
Таким образом, он автоматически отображается в моих библиотеках веб-приложений.
При добавлении новых файлов JAR, я получил два сообщения на Eclipse's Problems Tab
: одна ошибка и одно предупреждение. Я решил эту проблему только при объединении всех предыдущих решений с дополнительным шагом. Вот как я это решил:
- "Перетащите" файлы, которые я хочу в моем classpath / зависимости, в мой
WEB-INF/lib
файл; - Щелкните правой кнопкой мыши по вашему проекту в
Package Explorer
вкладка иbuild path --> configure build path -->external jars
, добавив нужные файлы; - Перезапущенное Затмение;
- Выбрать
Project --> Clean...
, Моя система настроена на автоматическую сборку, поэтому после этого шага пропало сообщение об ошибке, но предупреждениеXXXXXXXXXXX.jar will not be exported or published. Runtime ClassNotFoundExceptions may result
остались; - Щелкните правой кнопкой мыши на предупреждающее сообщение ->
Quick Fix
; - Выберите опцию
Mark the associated raw classpath entry as a publish/export dependency.
(как на рисунке ниже)
Щелкните правой кнопкой мыши по вашему проекту в project explorer
вкладка и build path --> configure build path, -->external jars
добавьте все банки, которые вы хотите.
В Eclipse 2022-03 вы можете щелкнуть правой кнопкой мыши предупреждение (в представлении «Проблемы»), выбрать быстрое исправление, которое даст вам возможность опубликовать/экспортировать зависимый проект в /WEB-INF/lib. Но меня бьет то, что из проекта Build Path мы не можем сделать этот шаг вручную.