Hibernate + jsf + spring duvidasssss

1 resposta
Deluxe

Galera
To perdidao aqui..
vamo la

Tenho uma pagina JSP que cadastra um usuario..
apos clikar no botao INCLUIR
CHAMA

O Bean tem um metodo salvarFacade que chama a classe Facade..
public String facedeSalvar() throws UsuarioDAOException{
    
    	
   	 	InterfaceFacedeUsuario icdao = new FacedeUsuario();
   	 	icdao.create(usuarioPojo);
        
   	 	return "sucesso_ins";
   
    }
Classe facade.. Chama o metodo de incluir do hibernate..
public void create(UsuarioPojo usuarioPojo)throws UsuarioDAOException {
    	
        InterfaceHibernateDAO icdao = new HibernateDAOImpl();
        icdao.save(usuarioPojo);
      
    }
Classe HibernateImpl
package br.com.intacto.crudjsf.model.dao.hibernate;

import java.io.Serializable;
import java.lang.reflect.ParameterizedType;
import java.util.List;

import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

public class HibernateDAOImpl<T, ID extends Serializable> extends
HibernateDaoSupport implements InterfaceHibernateDAO<T, ID> {

	private Class<T> persistentClass;

	@SuppressWarnings("unchecked")
	public HibernateDAOImpl() {
		this.persistentClass = (Class<T>) ((ParameterizedType) getClass()
				.getGenericSuperclass()).getActualTypeArguments()[0];
	}

	protected Class<T> getPersistentClass() {
		return this.persistentClass;
	}

	public void delete(T entity) {
		this.getHibernateTemplate().delete(entity);
	}


	public void save(T entity) {
		this.getHibernateTemplate().save(entity);
	}

	@SuppressWarnings("unchecked")
	public T searchById(ID id) {
		return (T) getHibernateTemplate().load(this.getPersistentClass(), id);
	}
}

Quando eu executo

message 

description The server encountered an internal error () that prevented it from fulfilling this request.

exception 

javax.servlet.ServletException: #{usuarioBean.facedeSalvar}: javax.faces.el.EvaluationException: java.lang.NoClassDefFoundError: org/springframework/orm/hibernate3/support/HibernateDaoSupport
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:209)


root cause 

javax.faces.FacesException: #{usuarioBean.facedeSalvar}: javax.faces.el.EvaluationException: java.lang.NoClassDefFoundError: org/springframework/orm/hibernate3/support/HibernateDaoSupport
	com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:78)
	javax.faces.component.UICommand.broadcast(UICommand.java:312)
	javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:267)
	javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:381)
	com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:75)
	com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:200)
	com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:90)
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:197)


root cause 

javax.faces.el.EvaluationException: java.lang.NoClassDefFoundError: org/springframework/orm/hibernate3/support/HibernateDaoSupport
	com.sun.faces.el.MethodBindingImpl.invoke(MethodBindingImpl.java:130)
	com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:72)
	javax.faces.component.UICommand.broadcast(UICommand.java:312)
	javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:267)
	javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:381)
	com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:75)
	com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:200)
	com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:90)
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:197)


root cause 

java.lang.NoClassDefFoundError: org/springframework/orm/hibernate3/support/HibernateDaoSupport
	java.lang.ClassLoader.defineClass1(Native Method)
	java.lang.ClassLoader.defineClass(Unknown Source)
	java.security.SecureClassLoader.defineClass(Unknown Source)
	org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1819)
	org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:872)
	org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1327)
	org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1206)
	java.lang.ClassLoader.loadClassInternal(Unknown Source)
	br.com.intacto.crudjsf.control.FacedeUsuario.create(FacedeUsuario.java:35)
	br.com.intactol.crudjsf.view.UsuarioBean.facedeSalvar(UsuarioBean.java:85)
	sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	java.lang.reflect.Method.invoke(Unknown Source)
	com.sun.faces.el.MethodBindingImpl.invoke(MethodBindingImpl.java:126)
	com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:72)
	javax.faces.component.UICommand.broadcast(UICommand.java:312)
	javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:267)
	javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:381)
	com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:75)
	com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:200)
	com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:90)
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:197)


root cause 

java.lang.ClassNotFoundException: org.springframework.orm.hibernate3.support.HibernateDaoSupport
	org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1360)
	org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1206)
	java.lang.ClassLoader.loadClassInternal(Unknown Source)
	java.lang.ClassLoader.defineClass1(Native Method)
	java.lang.ClassLoader.defineClass(Unknown Source)
	java.security.SecureClassLoader.defineClass(Unknown Source)
	org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1819)
	org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:872)
	org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1327)
	org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1206)
	java.lang.ClassLoader.loadClassInternal(Unknown Source)
	br.com.intacto.crudjsf.control.FacedeUsuario.create(FacedeUsuario.java:35)
	br.com.intactol.crudjsf.view.UsuarioBean.facedeSalvar(UsuarioBean.java:85)
	sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	java.lang.reflect.Method.invoke(Unknown Source)
	com.sun.faces.el.MethodBindingImpl.invoke(MethodBindingImpl.java:126)
	com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:72)
	javax.faces.component.UICommand.broadcast(UICommand.java:312)
	javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:267)
	javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:381)
	com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:75)
	com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:200)
	com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:90)
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:197)

applicationContext

<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
	"http://www.springframework.org/dtd/spring-beans.dtd">

<beans>
	<bean id="mySQLDataSource" 
		class="org.springframework.jdbc.datasource.DriverManagerDataSource">
		<property name="driverClassName">
			<value>com.mysql.jdbc.Driver</value>
		</property>
		<property name="url">
			<value>jdbc:mysql:///jsf</value>
		</property>
		<property name="username">
			<value>root</value>
		</property>
		<property name="password">
			<value>root</value>
		</property>
	</bean>
	<bean id="sessionFactory" 
		class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
		<property name="dataSource" ref="mySQLDataSource" />
		<property name="hibernateProperties">
			<props>
				<prop key="hibernate.dialect"> 
					org.hibernate.dialect.MySQLDialect </prop>
				<prop key="hibernate.c3p0.timeout">1800</prop>
				<prop key="hibernate.c3p0.idleTestPeriod">300</prop>
				<prop key="hibernate.show_sql">true</prop>
				<prop key="hibernate.format_sql">true</prop>
				<prop key="hibernate.use_sql_comments">true</prop>
				<prop key="hibernate.hbm2ddl.auto">update</prop>
			</props>
		</property>
		<property name="annotatedClasses">
			<list>
				<value>
					 br.com.intactol.crudjsf.view.UsuarioPojo</value>
			</list>
		</property>
	</bean>
	<!-- Transaction -->
	<bean id="transactionManager" 
		class="org.springframework.orm.hibernate3.HibernateTransactionManager" 
		autowire="byName"/>
	<bean id="transactionInterceptor" 
		class="org.springframework.transaction.interceptor.TransactionInterceptor" 
		>
		<property name="transactionAttributes">
			<props>
				<prop key="save*">PROPAGATION_REQUIRED</prop>
				<prop key="delete*">PROPAGATION_REQUIRED</prop>
				<prop key="*"> 
					PROPAGATION_REQUIRED,ISOLATION_DEFAULT,readOnly</prop>
			</props>
		</property>
		<property name="transactionManager" ref="transactionManager"/>
	</bean>
	<bean id="autoProxyCreator" 
		class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator" 
		>
		<property name="proxyTargetClass">
			<value>true</value>
		</property>
		<property name="interceptorNames">
			<list>
				<value>transactionInterceptor</value>
			</list>
		</property>
		<property name="beanNames">
			<list>
				<value>*Service</value>
			</list>
		</property>
	</bean>
	<!-- End transaction -->

</beans>

isso q to fazendo ta certo?
o metodo de salvar do hibernate e assim mesmo?
alguem tem um tutorial de jsf spring e hibernate junto?? que mostra passo a passo como faz a ligacoes dos 3 ou um exemplo

1 Resposta

Marcio_Duran

Step by Step Tutorial to setup CRUD the easy way !!!

Acho que esse exemplo talvez, lhe mostre um aspecto de configuração mais enxuto veja se ajuda…

:idea: http://www.thearcmind.com/confluence/display/SpribernateSF/Step+by+Step+Tutorial+to+setup+CRUD+the+easy+way

Criado 11 de junho de 2008
Ultima resposta 11 de jun. de 2008
Respostas 1
Participantes 2