Spring DAO Support: Erro ao incializar o HibernateDaoSupport

Pessoal,

Estou com um aplicação que utiliza JSF e Spring, realizei toda configuração do Spring, mas ao fazer o deploy a seguinte mensagem de erro aparece:


org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userDao' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Instantiation of bean failed; nested exception is java.lang.NoClassDefFoundError: net/sf/hibernate/Session
java.lang.NoClassDefFoundError: net/sf/hibernate/Session

Meu applicationContext


applicationContext.xml

<beans>

	<bean name="user" class="src.User" />

	<bean name="userForm" class="src.UserForm" singleton="false">
		<property name="daoService">
			<ref bean="userManager" />
		</property>
		<property name="user">
			<ref bean="user" />
		</property>
	</bean>

	<bean id="propertyConfigurer"
		class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
		<property name="location">
			<value>classpath:jdbc.properties</value>
		</property>
	</bean>


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

	<bean id="mySessionFactory"
		class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
		<property name="dataSource">
			<ref bean="dataSource" />
		</property>
		<property name="mappingResources">
			<list>
				<value>src/mapping/User.hbm.xml</value>
			</list>
		</property>
		<property name="hibernateProperties">
			<props>
				<prop key="hibernate.dialect">
					org.hibernate.dialect.MySQLDialect
				</prop>
				<prop key="hibernate.hbm2ddl.auto">update</prop>
			</props>
		</property>
	</bean>


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

	<bean id="txProxyTemplate" abstract="true"
		class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
		<property name="transactionManager">
			<ref bean="transactionManager" />
		</property>
		<property name="transactionAttributes">
			<props>
				<prop key="save*">PROPAGATION_REQUIRED</prop>
				<prop key="remove*">PROPAGATION_REQUIRED</prop>
				<prop key="*">PROPAGATION_REQUIRED,readOnly</prop>
			</props>
		</property>
	</bean>

	<bean id="userDao" class="src.UserDaoHibernate">
		<property name="sessionFactory">
			<ref bean="mySessionFactory" />
		</property>
	</bean>
	
	<bean id="userManager" parent="txProxyTemplate">
		<property name="target">
			<bean class="src.UserManager">
				<property name="userDao">
					<ref bean="userDao" />
				</property>
			</bean>
		</property>
	</bean>

</beans>

Pesquisei um pouco em alguns foruns e parece que o erro é porque o hibernate não consegue incializar a sessão, não tenho certeza.

Ai vei minha classe que implementa o HibernateDaoSupport


UserDaoHibernate.java

public class UserDaoHibernate extends HibernateDaoSupport 
implements UserDao{



	public void inseri(User user) {
		 getHibernateTemplate().saveOrUpdate(user);
		 
		 if (logger.isDebugEnabled()) {
	            logger.debug("userId set to: " + user.getId());
	        }
	}

	public Collection listaUsuarios() {
		  return getHibernateTemplate().find("from User");
	}

}

Alguém pode me dar uma dica… valeu… agradeço a todos!

java.lang.NoClassDefFoundError: net/sf/hibernate/Session

Por acaso o jar do hibernate2 está no classpath? :roll:

Dica:
Se voce estiver usando o hibernate 3 voce vai ter
que mudar o import no seu DAO. :slight_smile:

Valeu? Até… :thumbup:
[s]

Eu estou usando o hibernate3

Aonde fica essa alteração do import???

Valeu!

Em vez de importar:

org.springframework.orm.hibernate.support.HibernateDaoSupport

eu importo assim:

org.springframework.orm.hibernate3.support.HibernateDaoSupport

Dessa forma?

Sim, isso mesmo! :smiley:

Pois da versao 2 pra versao 3 do hibernate a
nomenclatura dos pacotes mudaram.

na versao 2: net.sf.hibernate
na versao 3: org.hibernate

Valeu? Até… :thumbup:
[s]

Gui,

Da uma olhada neste novo erro:

http://www.guj.com.br/posts/list/30051.java

agradeço a compreensão.

Valeu!