2013-04-09 1 views
0

저는 Spring 3.2와 Hibernate4를 사용하고 있습니다. 필요한 모든 항아리가 포함되어 있습니다. JBoss AS 사용하기. Eclipse에서 배치. 하지만이 오류가 발생합니다.NoSuchMethodError : LocalSessionFactoryBuilder.addAnnotatedClass (Ljava/lang/Class;) Lorg/hibernate/cfg/Configuration;

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 
'personController': Injection of autowired dependencies failed; nested exception is 
org.springframework.beans.factory.BeanCreationException: Could not autowire field: private 
com.springmvcsample.service.PersonService 
com.springmvcsample.controller.PersonController.personService; nested exception is 
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 
'personService': Injection of autowired dependencies failed; nested exception is 
org.springframework.beans.factory.BeanCreationException: Could not autowire field: private 
com.springmvcsample.dao.PersonDAO com.springmvcsample.service.PersonServiceImpl.personDao; nested 
exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with 
name 'personDao': Injection of autowired dependencies failed; nested exception is  
org.springframework.beans.factory.BeanCreationException: Could not autowire field: 
org.hibernate.SessionFactory com.springmvcsample.dao.PersonDAOImpl.sessionFactory; nested 
exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with 
name 'sessionFactory' defined in ServletContext resource [/WEB-INF/hibernate_config.xml]: 
Invocation of init method failed; nested exception is java.lang.NoSuchMethodError: 
org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.addAnnotatedClass 
(Ljava/lang/Class;)Lorg/hibernate/cfg/Configuration; 

의 Web.xml

<servlet> 
    <servlet-name> SpringMVC_Hibernate</servlet-name> 
    <servlet-class> 
       org.springframework.web.servlet.DispatcherServlet 
    </servlet-class> 
    <load-on-startup>1</load-on-startup> 
    </servlet> 

    <context-param> 
<param-name>contextConfigLocation</param-name> 
<param-value>/WEB-INF/SpringMVC_Hibernate-servlet.xml</param-value> 
    </context-param> 

<servlet-mapping> 
    <servlet-name>SpringMVC_Hibernate</servlet-name> 
    <url-pattern>*.htm</url-pattern> 
</servlet-mapping> 

SpringMVC_Hibernate-servlet.xml에

 <context:component-scan base-package="com.springmvcsample.controller"/> 
    <context:component-scan base-package="com.springmvcsample.dao"/> 
    <context:component-scan base-package="com.springmvcsample.service"/> 
    <import resource="hibernate_config.xml"/> 

    <mvc:annotation-driven content-negotiation-manager="contentNegotiationManager"/> 
    <bean id="contentNegotiationManager" class="org.springframework.web.accept.ContentNegotiationManagerFactoryBean"> 
     <!-- Turn off working out content type based on URL file extension, should fall back to looking at the Accept headers --> 
     <property name="favorPathExtension" value="false" /> 
    </bean> 

    <bean name="sender" class="com.springmvcsample.utility.MessageSender"/> 

hibernate_config.xml

<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> 
    <property name="locations"> 
     <list> 
      <value>/resources/db.properties</value> 
     </list> 
    </property> 
</bean> 

<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> 
    <property name="driverClassName" value="com.mysql.jdbc.Driver" /> 
    <property name="url" value="${jdbc.url}" /> 
    <property name="username" value="${jdbc.user}" /> 
    <property name="password" value="${jdbc.password}" /> 
</bean> 

<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"> 
    <property name="dataSource" ref="dataSource"/> 
    <property name="packagesToScan" value="com.springmvcsample.controller" /> 
    <property name="hibernateProperties"> 
     <props> 
      <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop> 
      <prop key="hibernate.show_sql">true</prop> 

     </props> 
    </property> 
</bean> 

<tx:annotation-driven transaction-manager="transactionManager"/> 

<bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager"> 
    <property name="sessionFactory" ref="sessionFactory"/> 
</bean> 

my lib flder

,개

추가 항아리는 다음과 같습니다

spring-jms-3.2x.jar 
    spring-orm-*.jar 
    spring-tx-*.jar 
    spring-web-*.jar 
    spring-webmvc-*.jar 
+0

모든 스프링 단지 바로 –

+0

그게 마우스 오른쪽 3.2.0에서 있습니다. 모두 같은 버전 3.2.0 –

+0

라이브러리가 실제로 war 파일에 포함되어 있습니까? – Kai

답변

1

메이븐은 이러한 경우에 인생을 더 쉽게 만들어 사용. 이클립스와 같은 IDE에서 pom.xml 파일을 열기

은/STS는 다음과 같이 당신에게 더 나은 그림을 제공합니다 : -

enter image description here

+0

정보 주셔서 감사합니다! –

관련 문제