2014-10-14 3 views
3

저는 모델 클래스를 annotatedClasses의 sdnext-servlet.xml에서 정확하게 언급 한 com.anand.model.Employee.java와 에 보관합니다. 하지만 여전히 오류가 발생합니다. 이 문제를 해결하도록 도와주세요.빈 초기화가 실패했습니다. 중첩 예외는 org.springframework.beans입니다.

sdnext-servlet.xml에

<bean id="sessionFactory" 
     class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> 
     <property name="dataSource" ref="dataSource" /> 
     <property name="annotatedClasses"> 
      <list> 
       <value>com.anand.model.Employee</value> 
      </list> 
     </property> 
     <property name="hibernateProperties"> 
      <props> 
       <prop key="hibernate.dialect">${hibernate.dialect}</prop> 
       <prop key="hibernate.show_sql">${hibernate.show_sql}</prop> 
       <prop key="hibernate.hbm2ddl.auto">${hibernate.hbm2ddl.auto}</prop>    
      </props> 
     </property> 
    </bean> 

모델 클래스 : Employee.java

package com.anand.model; 

import java.io.Serializable; 

import javax.persistence.Column; 
import javax.persistence.Entity; 
import javax.persistence.GeneratedValue; 
import javax.persistence.GenerationType; 
import javax.persistence.Id; 
import javax.persistence.Table; 

/** 
* @author Anand Gopalan 
* 
*/ 
@Entity 
@Table(name="Employee") 
public class Employee implements Serializable{ 

    private static final long serialVersionUID = -723583058586873479L; 

    @Id 
    @GeneratedValue(strategy=GenerationType.AUTO) 
    @Column(name = "empid") 
    private Integer empId; 

    @Column(name="empname") 
    private String empName; 

    @Column(name="empaddress") 
    private String empAddress; 

    @Column(name="salary") 
    private Long salary; 

    @Column(name="empAge") 
    private Integer empAge; 

    public Integer getEmpId() { 
     return empId; 
    } 

    public void setEmpId(Integer empId) { 
     this.empId = empId; 
    } 

    public String getEmpName() { 
     return empName; 
    } 

    public void setEmpName(String empName) { 
     this.empName = empName; 
    } 

    public String getEmpAddress() { 
     return empAddress; 
    } 

    public void setEmpAddress(String empAddress) { 
     this.empAddress = empAddress; 
    } 

    public Long getSalary() { 
     return salary; 
    } 

    public void setSalary(Long salary) { 
     this.salary = salary; 
    } 

    public Integer getEmpAge() { 
     return empAge; 
    } 

    public void setEmpAge(Integer empAge) { 
     this.empAge = empAge; 
    } 

} 

로그 : 심각한

: StandardWrapper.Throwable org.springframework. beans.factory.BeanCreationExce ption : 오류 ServletContext에 'sessionFactory'라는 이름의 bean을 생성했습니다. 리소스 [/WEB-INF/config/sdnext-servlet.xml] : 초기화 빈의 에 실패했습니다. 중첩 예외가 org.springframework.beans.TypeMismatchException : 'java.util.ArrayList'유형의 속성 값을 'annotatedClasses'속성의 'java.lang.Class []'유형으로 변환하는 데 실패했습니다. 상자의 예외를 는 java.lang.IllegalArgumentException가 있습니다 : 클래스 [com.anand.model.Employee] 에서 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean (AbstractAutowireCapableBeanFactory.java:521) 에서 조직을 찾을 수 없습니다 org.springframework에서 org.springframework.beans.factory.support.AbstractBeanFactory $ 1.getObject (AbstractBeanFactory.java:290) 에서 .springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean (AbstractAutowireCapableBeanFactory.java:450) . beans.factory.support.DefaultSingletonBeanRegistry.getSingleton (DefaultSingletonBeanRegistry.java:222) at org.sp ringframework.beans.factory.support.AbstractBeanFactory.doGetBean org.springframework.beans.factory.support.AbstractBeanFactory.getBean (AbstractBeanFactory.java:189)에서 (AbstractBeanFactory.java:287) 된 org.springframework.beans에서 . org.springframework.context.support.AbstractApplicationContext.refresh에서 factory.support.DefaultListableBeanFactory.preInstantiateSingletons org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization (AbstractApplicationContext.java:871)에서 (DefaultListableBeanFactory.java:545) (AbstractApplicationContext.java:423) at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext (FrameworkServlet 된 .java : 443) 에서 org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext (FrameworkServlet.java:340에서 org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext (FrameworkServlet.java:459) )에서 javax.servlet.GenericServlet.init에서 org.springframework.web.servlet.HttpServletBean.init (HttpServletBean.java:127) 에서 org.springframework.web.servlet.FrameworkServlet.initServletBean (FrameworkServlet.java:307) (GenericServlet .java : 158) at org.apache.catalina.core.StandardWrapper.initServlet (StandardWrapper.java:1284) at org.apache.catalina.core. org.apache.catalina.core.StandardContext.loadOnStartup (StandardContext.java에서 StandardWrapper.loadServlet org.apache.catalina.core.StandardWrapper.load (StandardWrapper.java:1087)에서 (StandardWrapper.java:1197) : 5229) org.apache.catalina.core.StandardContext.startInternal (StandardContext.java:5516에서 ) org.apache.catalina.util.LifecycleBase.start (LifecycleBase.java:150 AT) org.apache에서 .catalina.core.ContainerBase $ StartChild.call (ContainerBase.java:1575) at org.apache.catalina.core.ContainerBase $ StartChild.call (ContainerBase.java:1565) at java.util.concurrent.FutureTask. 운영 (알 수없는 소스) at 의 java.util.concurrent.ThreadPoolExecutor.runWorker (알 수없는 소스) 의 java.util.concurrent.ThreadPoolExecutor $ Worker.run (알 수없는 소스) java.lang.Thread.run (알 수없는 소스) by : org.springframework.beans.TypeMismatchException : 'java.util.ArrayList'유형의 속성 값 을 'annotatedClasses'속성에 대해 'java.lang.Class []'로 변환하지 못했습니다. 상자의 예외를 는 java.lang.IllegalArgumentException가 있습니다 : 된 org.springframework.beans에서 org.springframework.beans.BeanWrapperImpl.convertForProperty (BeanWrapperImpl.java:457) 에서 클래스 [com.anand.model.Employee]를 찾을 수 없습니다. factory.support.AbstractAutowireCapableBeanFactory.convertForProperty (AbstractAutowireCapableBeanFactory.java:1354) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues ​​(AbstractAutowireCapableBeanFactory.java:1313) org.springframework.beans.factory.support에서 에서 . AbstractAutowireCapableBeanFactory.populateBean (AbstractAutowireCapableBeanFactory.java:1067) at org.springframework. java.lang.IllegalArgumentException가 : beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean (AbstractAutowireCapableBeanFactory.java:511) ... 26 이상으로 인한 수 없습니다 찾기 클래스 [com.anand.model.Employee] org.springframework에서. org.springframework.beans.TypeConverterDelegate.doConvertTextValue (TypeConverterDelegate.java에서 util.ClassUtils.resolveClassName org.springframework.beans.propertyeditors.ClassEditor.setAsText (ClassEditor.java:64)에서 (ClassUtils.java:294) : 474) at org.springframework.beans.TypeConverterDelegate.doConvertValue (TypeConverterDelegate.java:446) at org.springframework.beans.TypeConverterDelegate.convert IfNecessary org.springframework.beans.TypeConverterDelegate.convertToTypedArray (TypeConverterDelegate.java:485)에서 org.springframework.beans.TypeConverterDelegate.convertIfNecessary (TypeConverterDelegate.java:122)에서 (TypeConverterDelegate.java:215) 에서 조직도 org.springframework.beans.BeanWrapperImpl.convertForProperty에서 .springframework.beans.TypeConverterDelegate.convertIfNecessary org.springframework.beans.TypeConverterDelegate.convertIfNecessary (TypeConverterDelegate.java:154)에서 (TypeConverterDelegate.java:227) (BeanWrapperImpl.java : 452) ... 30 추가 원인 : java.lang.ClassNotFoundException : com.anand. org.apache.catalina.loader.WebappClassLoader.loadClass (WebappClassLoader.java:1571) org.springframework에서 에서 org.apache.catalina.loader.WebappClassLoader.loadClass (WebappClassLoader.java:1720) 에서 model.Employee. util.ClassUtils.forName (ClassUtils.자바 : 258) org.springframework.util.ClassUtils.resolveClassName (ClassUtils.java:291에서) ... 39 개

2014년 10월 14일 오전 11시 40분 35초의 org.apache.catalina.core .StandardContext는 loadOnStartup은 심각 :에 org.apache.catalina.loader.WebappClassLoader.loadClass (WebappClassLoader.java:1720) 에서 com.anand.model.Employee : 서블릿/sdnext로드() 예외 java.lang.ClassNotFoundException가 던진 org.apache.catalina.loader.WebappClassLoader.loadClass (WebappClassLoader.java:1571) at org.springframework.util.ClassUtils.forName (ClassUtils.java:258) at org.springframework.beans.TypeConverterDelegate.doConvertTextValue에서 91,363,210 org.springframework.util.ClassUtils.resolveClassName org.springframework.beans.propertyeditors.ClassEditor.setAsText (ClassEditor.java:64)에서 (ClassUtils.java:291) 조직에서 org.springframework.beans.TypeConverterDelegate.convertIfNecessary (TypeConverterDelegate.java:215) 에서 org.springframework.beans.TypeConverterDelegate.doConvertValue (TypeConverterDelegate.java:446)에서 (TypeConverterDelegate.java:474) . springframework.beans.TypeConverterDelegate.convertIfNecessary (TypeConverterDelegate.java:122) at org.springframework.beans.TypeCo nverterDelegate.convertToTypedArray org.springframework.beans.TypeConverterDelegate.convertIfNecessary (TypeConverterDelegate.java:154)에서 org.springframework.beans.TypeConverterDelegate.convertIfNecessary (TypeConverterDelegate.java:227)에서 (TypeConverterDelegate.java:485) 에서 org.springframework.beans.factory에서 org.springframework.beans.BeanWrapperImpl.convertForProperty org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.convertForProperty (AbstractAutowireCapableBeanFactory.java:1354)에서 (BeanWrapperImpl.java:452) .support.AbstractAutowireCapableBeanFactory.applyPropertyValues ​​(AbstractAutowireCapableBeanFactory.java:1313) 에서 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean (AbstractAutowireCapableBeanFactory.java:511) 에서 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean (AbstractAutowireCapableBeanFactory.java:1067) 에서 691,363,210 조직도 org.springframework에서 org.springframework.beans.factory.support.AbstractBeanFactory $ 1.getObject (AbstractBeanFactory.java:290) 에서 .springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean (AbstractAutowireCapableBeanFactory.java:450) . beans.factory.support.DefaultSingletonBeanRegistry.getSingleton (DefaultSingletonBeanRegistry.java:222) at org.springframework에서 1,515,org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean org.springframework.beans.factory.support.AbstractBeanFactory.getBean (AbstractBeanFactory.java:189)에서 (AbstractBeanFactory.java:287) org.springframework.context.support.AbstractApplicationContext에서 .beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization (AbstractApplicationContext.java:871)에서 (DefaultListableBeanFactory.java:545) .refresh (AbstractApplicationContext.java:423) at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext에서 org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext (FrameworkServlet.java:459)에서 (FrameworkServlet.java:443) (FrameworkServlet.java:340) org.springframework.web.servlet.HttpServletBean.init (HttpServletBean.java:127) javax.servlet.GenericServlet에서 에서 org.springframework.web.servlet.FrameworkServlet.initServletBean (FrameworkServlet.java:307) 에서 . init (GenericServlet.java:158) at org.apache.catalina.core.StandardWrapper.initServlet (StandardWrapper.java:1284) at org.apache.catalin org.apache.catalina.core.StandardContext.loadOnStartup에서 a.core.StandardWrapper.loadServlet org.apache.catalina.core.StandardWrapper.load (StandardWrapper.java:1087)에서 (StandardWrapper.java:1197) ( org.apache.catalina.util.LifecycleBase.start (LifecycleBase.java:150에서 org.apache.catalina.core.StandardContext.startInternal (StandardContext.java:5516) ) 에서의 StandardContext.java:5229) org.apache.catalina.core.ContainerBase $ StartChild.call (ContainerBase.java:1575) ( ) org.apache.catalina.core.ContainerBase $ StartChild.call (ContainerBase.java:1565) at java.util. 동시. 미래 T (알 수없는 소스) 에서 ask.run (알 수없는 소스) 에서 java.util.concurrent.ThreadPoolExecutor.runWorker (알 수없는 소스) 에서 java.util.concurrent.ThreadPoolExecutor $ Worker.run (알 수없는 소스) java.lang.Thread.run 출처)

+0

지우기 및 다시 작성 –

답변

7

이것은 수행 한 작업의 대안입니다. annotatedClasses을 구성의 다음 요소로 바꾸고 서버를 다시 시작한 후에 작업 영역을 정리하십시오.

<property name="packagesToScan"> 
    <list> 
     <value>com.anand.model</value>   
    </list> 
</property> 
+0

annotatedClasses를 packagesToScan으로 바꾸는 것이 효과가있는 이유는 무엇입니까? 정교하게 주시겠습니까? – Deepak

0

질문에 대한 해결책 : maven을 청소하고 maven을 다시 한 번 업데이트하고 빌드하십시오. 작동하지 않을 수 있습니다. 그 이유 때문에 패키지가 누락되었습니다. 따라서 오류가 발생 했으므로 깨끗하게 업데이트하십시오.

관련 문제