2016-06-01 5 views
0

오류 메시지 : 클래스에 정의 1 개 인수 생성자 'UserDaoImpl'[설정 세트 : MyProject를/웹 컨텍스트]클래스에 정의 1 개 인수 생성자 'UserDaoImpl'[설정 세트 : MyProject를/웹 컨텍스트]

몇 가지 다른 유사한 질문을 읽은 후 클래스에서 동일한 생성자 이름이 동일한 클래스 이름으로 이름이 지정되고 공용 액세스 수정 자 유형이며 생성자에 반환 유형이 없음을 확인했습니다.

아직도이 오류 메시지는 여기 UserDaoImpl 클래스의 생성자 코드는의 hibernate.cfg.xml로

<bean id="userDaoImpl" class="com.company.users.dao.UserDaoImpl"> 
    <property name="sessionFactory" ref="sessionFactory"></property>   
</bean> 

에 표시 하였다.

public UserDaoImpl(SessionFactory sessionFactory) { 
    super(); 
    this.sessionFactory = sessionFactory; 
} 

@Gusman [추가]

하이버 네이트 세션 팩토리

<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"> 
    <property name="dataSource"> 
     <ref bean="dataSource"/> 
    </property> 
    <property name="mappingResources"> 
     <list> 
      <value>/resources/hibernate/User.hbm.xml</value> 
      <value>/resources/hibernate/UserRole.hbm.xml</value> 
     </list> 
    </property> 
    <property name="hibernateProperties"> 
     <props> 
      <prop key="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</prop> 
      <prop key="hibernate.format_sql">true</prop> 
      <prop key="hibernate.show_sql">true</prop> 
      <prop key="hibernate.hbm2ddl.auto">create</prop> 
     </props> 
    </property> 
</bean> 

@hooknc [추가]

이 UserDaoImpl 파일의 세터 코드입니다.

private SessionFactory sessionFactory; 

public SessionFactory getSessionFactory() { 
    return sessionFactory; 
} 
public void setSessionFactory(SessionFactory sessionFactory) { 
    this.sessionFactory = sessionFactory; 
} 
+0

내 최대 절전 모드가 약간 녹슨이지만, * 심판 = "sessionFactory에"*이 *해서는 안 심판 = "SessionFactory"*? – Gusman

+0

@Gusman hibernate-cfg.xml 파일 빈 id에서 언급 한 것과 같은 ref id가 사용되었습니다 (즉, id = "sessionFactory"). 그리고 귀하의 참조를 위해 동일한 코드가 질문에 추가되었습니다. – Vivaswan

+0

이 문제가 계속 발생합니까? – hooknc

답변

0

당신이 당신의 스프링 설정 파일에서 더 자세히 보면, 당신은 당신이 당신의 UserDaoImpl에 속성을 설정하려는 볼 수 있습니다. UserDaoImpl 클래스를 기반으로 생성자는 SessionFactory입니다. 스프링은 UserDaoImpl에 0 매개 변수 생성자를 호출하려고 시도하지만 하나도 존재하지 않으므로 오류가 발생합니다.

SessionFactory을 사용하는 생성자 만 있습니다. 대신 생성자 값을 사용하는 스프링 설정 파일을 변경하는 경우

, 모든 것이 해결해야

<bean id="userDaoImpl" class="com.company.users.dao.UserDaoImpl"> 
    <constructor-arg name="sessionFactory" ref="sessionFactory"/> 
</bean> 
+0

코드를 테스트했지만 동일한 오류가 있습니다. Setter & Getter 메소드 코드는 이미 UserDaoImpl 파일에 있으며 사용자가 참조 할 수 있도록 질문에 추가되었습니다. – Vivaswan

+0

답변을 (희망을 갖고) 실제로 일어난 일과 이유에 대해 좀 더 명확하게 업데이트했습니다. – hooknc