org.springframework.beans.factory. CannotLoadBeanClassException: не Может найти класс

Я заменил j2ee.jar servle-api.com от моего кота 6,0 каталогов установки: И это приводит к ошибке ниже. Я в настоящее время пытаюсь выяснить причину. Что могло бы проблема быть.

У меня есть боб, определенный в конфигурационном файле: Sempedia-service.xml следующим образом

<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
    <bean id="sempediaSearchService"
        class="com.service.SempediaSearchManager" />


</beans>

мой web.xml указывает следующие бобы:

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/Sempedia-service.xml,/WEB-INF/Sempedia-persistence.xml</param-value>
</context-param>

<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

Отслеживание стека

SEVERE: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener
org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [com.service.SempediaSearchManager] for bean with name 'sempediaSearchService' defined in ServletContext resource [/WEB-INF/Sempedia-service.xml]; nested exception is java.lang.ClassNotFoundException: com.service.SempediaSearchManager
    at org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1141)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.predictBeanType(AbstractAutowireCapableBeanFactory.java:524)
    at org.springframework.beans.factory.support.AbstractBeanFactory.isFactoryBean(AbstractBeanFactory.java:1177)
    at org.springframework.beans.factory.support.AbstractBeanFactory.isFactoryBean(AbstractBeanFactory.java:758)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:422)
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:728)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:380)
    at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:255)
    at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:199)
    at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:45)
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3934)
    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(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
Caused by: java.lang.ClassNotFoundException: com.service.SempediaSearchManager
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1387)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233)
    at org.springframework.util.ClassUtils.forName(ClassUtils.java:211)
    at org.springframework.beans.factory.support.AbstractBeanDefinition.resolveBeanClass(AbstractBeanDefinition.java:385)
    at org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1138)
    ... 24 more
10
задан Ashish Gupta 5 March 2013 в 11:00
поделиться

2 ответа

Проблема в том, что в classpath вашего webapp нет класса с названием com.service.SempediaSearchManager. Наиболее вероятными причинами являются:

  • неправильное полное имя класса в /WEB-INF/Sempedia-service.xml; т.е. имя класса - это что-то другое,

  • класс отсутствует в дереве каталогов /WEB-INF/classes вашего webapp или JAR-файл в каталоге /WEB-INF/lib.

EDIT : Единственное, о чем я могу еще подумать, это то, что ClassDefNotFoundException может быть результатом более ранней проблемы загрузки класса / статической инициализации. Проверьте в логах первую трассировку стека и посмотрите вложенные исключения, т.е. цепочку "вызвано". Class.forName() Если загрузка класса не удалась один раз, и вы или Spring по какой-то причине вызываете Class.forName() снова, то Java на самом деле не будет пытаться загрузиться во второй раз. Вместо этого вы получите ClassDefNotFoundException трассировку стека, которая не объясняет истинную причину первоначального сбоя.]

Если вы все еще в тупике, вам следует убрать Eclipse. Создайте WAR-файл в той форме, в которой вы собираетесь его развернуть, затем из командной строки:

  1. вручную выключите Tomcat

  2. очистите каталог webapp Tomcat,

  3. скопируйте WAR-файл в каталог webapp,

  4. запустите Tomcat.

Если это не решит проблему напрямую, посмотрите на развернутый каталог webapp в Tomcat, чтобы убедиться, что "недостающий" класс находится в нужном месте.

15
ответ дан 3 December 2019 в 20:41
поделиться

У меня такая же проблема. Я проверил свои / WEB-INF / классы на основе рекомендации Стивена :

класс отсутствует в дереве каталогов вашего веб-приложения / WEB-INF / classes или в файле JAR в / WEB-INF / lib каталог.

Я обнаружил, что у меня устаревший файл jar. Замена его на последний файл jar решила проблему.

0
ответ дан 3 December 2019 в 20:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: