класс не найден исключение - PullRequest
2 голосов
/ 01 марта 2011

Я пытаюсь запустить веб-приложение в затмении, используя пружины и спящий режим.

dispatcher-servlet.xml:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:p="http://www.springframework.org/schema/p"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

    <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver" p:prefix="/WEB-INF/jsp/" p:suffix=".jsp" />

    <bean id="myDataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
        <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
        <property name="url" value="jdbc:mysql://localhost/test"/>
        <property name="username" value="root"/>
        <property name="password" value="mysql"/>
    </bean>

    <bean id="mySessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
        <property name="dataSource" ref="myDataSource" />
        <property name="annotatedClasses">
            <list>
                <value>com.vaannila.domain.User</value>
            </list>
        </property>


        <property name="hibernateProperties">
            <props>
                <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
                <prop key="hibernate.show_sql">true</prop>
                <prop key="hibernate.hbm2ddl.auto">create</prop>
            </props>
        </property>
    </bean>

    <bean id="myUserDAO" class="com.vaannila.dao.UserDAOImpl">
        <property name="sessionFactory" ref="mySessionFactory"/>
    </bean>

    <bean name="/user/*.htm" class="com.vaannila.web.UserController" >
        <property name="userDAO" ref="myUserDAO" />
    </bean>

</beans>

ошибка, которую я получаю,


org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'mySessionFactory' defined in ServletContext resource [/WEB-INF/dispatcher-servlet.xml]: Initialization of bean failed; nested exception is org.springframework.beans.TypeMismatchException: Failed to convert property value of type 'java.util.ArrayList' to required type 'java.lang.Class[]' for property 'annotatedClasses'; nested exception is java.lang.IllegalArgumentException: Cannot find class [com.vaannila.domain.User]
    org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:527)
    org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
    org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
    org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
    org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
    org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
    org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:563)
    org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:900)
    org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:455)
    org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:442)
    org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:458)
    org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:339)
    org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:306)
    org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:133)
    javax.servlet.GenericServlet.init(GenericServlet.java:212)
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
    org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
    org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
    org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
    java.lang.Thread.run(Thread.java:636)

Класс com.vaannila.domain.User находится в папке Java Resources: src проекта в eclipse.

Ответы [ 5 ]

2 голосов
/ 11 марта 2012

Всегда проверяйте вкладку / представление «Проблемы» в Eclipse. У меня была та же проблема, и причина была проста: я включил файл «org.springframework.spring-library-3.1.0.RELEASE.libd» в качестве библиотекинастраивал путь сборки, и он был в той же папке "dist", поэтому я просто удалил его, и все работает нормально.

2 голосов
/ 01 марта 2011
  1. Проверьте, что класс должен быть там в src/com/vannila/domain/User.java

  2. проверьте, что класс аннотирован, как показано здесь . И сравните, где выпропустил вещь

0 голосов
/ 02 марта 2011

Это просто, это столкновение произошло в библиотеке, которую вы включили. Пожалуйста, проверьте библиотеку, которую вы включили, в пути:

   tomcat6/webapps/<you project name>/WEB-INF/lib/

вы можете найти два файла с такими именами, как: asm.jar и asm-2.x.x.jar два файла jar поступают из другого источника, один из источника, другой из hibernate, поэтому здесь произошло некоторое столкновение, tomcat не может решить, какой jar добавить. Поэтому он сообщает об исключении.

0 голосов
/ 01 марта 2011

я пробую код, и все работает нормально.

сначала я подозреваю, что <list> выдаст экземпляр List, а не массива, но когда я попробую, все будет хорошо.

Spring выдаст ошибку, как вы написали выше, если они не смогут найти класс, который вы предполагаете включить в этом случае com.vaannila.domain.User

проверьте вашу выходную папку для скомпилированного класса. существует ли User.class и успешно ли он скомпилирован?

0 голосов
/ 01 марта 2011

Пожалуйста, создайте пакет в eclipse и добавьте в него файл User.java.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...