2010-12-22 179 views
1
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.vinoth.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:291) 
    org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) 
    org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:288) 
    org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:190) 
    org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:563) 
    org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:895) 
    org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:425) 
    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:127) 
    javax.servlet.GenericServlet.init(GenericServlet.java:212) 
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117) 
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174) 
    org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:879) 
    org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665) 
    org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528) 
    org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81) 
    org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689) 
    java.lang.Thread.run(Unknown Source) 

我在我的源代碼中有特定的類,這裏是我的bean配置,但是當我編譯我的應用程序時,它會拋出錯誤。類未發現異常。

<?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://127.0.0.1:3306/spring"/> 
     <property name="username" value="monty"/> 
     <property name="password" value="indian"/> 
    </bean> 

    <bean id="mySessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> 
     <property name="dataSource" ref="myDataSource" /> 
     <property name="annotatedClasses"> 
      <list> 
       <value>com.vinoth.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.vinoth.dao.UserDAOImpl"> 
     <property name="sessionFactory" ref="mySessionFactory"/> 
    </bean> 

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

</beans> 
+3

你的標題就是你的答案 – 2010-12-22 13:59:54

回答

2

堆棧跟蹤非常清楚:Cannot find class [com.vinoth.domain.User]。你能重新檢查包名,類名並確認該類是否確實存在於webapp中?

3

該類似乎缺少...

com.vinoth.domain.User 
1

確保Java文件被正確編譯和複製到您的WAR文件的WEB-INF類目錄。如果您是通過IDE運行此程序,請檢查您的IDE設置以確保將類複製到正確的位置。