ClassNotFoundException при запуске проекта Spring + Maven2 на Tomcat 6 из Eclipse 3.5 - PullRequest
15 голосов
/ 07 апреля 2010

При попытке запустить веб-проект из Eclipse я получаю:


SEVERE: Error configuring application listener of class org.springframework.web.context.ContextLoaderListener
java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1387)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233)
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3877)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4429)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:722)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
    at org.apache.catalina.core.StandardService.start(StandardService.java:516)
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:583)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)

Проект начал терпеть неудачу, когда я перешел на Fedora 12 x64. Проект работал на WinXP с такой же конфигурацией.

Поглядывая вокруг, я нашел сообщения, в которых утверждается, что переход к Свойства проекта -> Зависимости модуля Java EE и проверка поля Зависимости Maven устраняет проблему. К сожалению, это не сработало для меня.

Я использую Spring 2.5.6, Maven2, Eclipse 3.5 (с плагином m2e 0.10.0), Tomcat 6 и Java 6, работающие на Fedora 12 x64.

Кто-нибудь видел эту проблему?

Если это поможет, вот мой файл .classpath


<?xml version="1.0" encoding="UTF-8"?>
<classpath>
    <classpathentry kind="src" output="target/classes" path="src/main/java"/>
    <classpathentry kind="src" output="target/classes" path="target/generated-sources/gpb"/>
    <classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"/>
    <classpathentry kind="src" output="target/test-classes" path="src/test/java"/>

    <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>

    <classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER">
        <attributes>
            <attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
        </attributes>
    </classpathentry>
    <classpathentry kind="con" path="org.eclipse.iam.jdt.core.mavenClasspathContainer">
        <attributes>
            <attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
        </attributes>
    </classpathentry>
    <classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.web.container"/>
    <classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.module.container"/>
    <classpathentry kind="output" path="target/classes"/>
</classpath>

Обновление: У меня нет проблем со сборкой или запуском проекта вне Eclipse.

Ответы [ 4 ]

19 голосов
/ 07 апреля 2010

Похоже, у вас есть Eclipse IAM и M2Eclipse в вашем .classpath. Я бы сделал некоторую уборку:

  • Используйте только один из этих плагинов (я предлагаю использовать M2Eclipse).
  • Удалите свой проект из рабочей области Eclipse, удалите .classpath и .project и снова импортируйте проект как проект Maven.

Обновление: Чтобы получить поддержку WTP с M2Eclipse, необходимо установить Maven Integration для WTP с сайта обновления m2eclipse Extras: http://download.eclipse.org/m2e-wtp/releases/, как показано ниже:

enter image description here

9 голосов
/ 10 марта 2011

У меня был тот же симптом с другой причиной. Я должен был отредактировать мой файл .classpath. Maven запись:

<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER">
    <attributes>
        <attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
    </attributes>
</classpathentry>

... не хватало тега атрибутов, показанного здесь. Когда я добавил тег атрибутов, проблема исчезла. Мне очень интересно, как настроить это в пользовательском интерфейсе eclipse.

4 голосов
/ 14 октября 2011

Обратите внимание, что шаги для установки интеграции WTP изменились.

См .: Проекты Maven / Tomcat в Eclipse Indigo / 3.7

1 голос
/ 24 декабря 2011

Время от времени сталкивайтесь с одной и той же проблемой.

По какой-то странной причине эту проблему можно решить следующим образом

1) Щелкните правой кнопкой мыши проект Maven -> Отключить зависимости Maven

2) Щелкните правой кнопкой мыши проект Maven -> Включить зависимости Maven

...