Inserir com JSF

Olá pessoal, estou aqui mais uma vez, a bronca é a seguinte… simplismente nao consigo persistir no banco com os dados vindo da interface no caso a jsp.Quando rodo os teste unitários testando os meus DAOS ele persiste normal, Estou utilizando jsf hibernate/jpa e spring.

lá vai meu código e exceção.

jsp

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:f="http://java.sun.com/jsf/core"
	xmlns:ui="http://java.sun.com/jsf/facelets"
	xmlns:c="http://java.sun.com/jstl/core"
	xmlns:tr="http://myfaces.apache.org/trinidad" lang="pt-br">
<body>

<ui:composition template="template.xhtml">

	<ui:define name="titulo">
                Área Administrativa
            </ui:define>

	<ui:define name="conteudo">
		<div id="formulario">
		<h:panelGrid columns="4">

			<h:outputText value="Categoria:" />
			<h:inputText id="categoria"
				value="#{categoriaController.categoria.catNome}" 
				required="true"
				requiredMessage="Campo obrigatório"
				/>
			
			<h:message for="categoria" />
			</h:panelGrid> 
			<h:panelGrid columns="2">
			<h:commandButton value="Salvar"
				action="#{categoriaController.salvar}" />
			<h:commandButton value="Cancelar"
							action="cancelar"
							immediate="true" />	
			</h:panelGrid>
		</div>
	</ui:define>

</ui:composition>

</body>
</html>

meu controlador resumido

public class CategoriaController implements Serializable {

	private Categoria categoria;
	private DataModel dataModel;
	private DaoGenerico<Categoria, Integer> categoriaDao;

	public CategoriaController() {

	}

	@Resource
	public void setCategoriaDao(DaoGenerico<Categoria, Integer> categoriaDao) {
		this.categoriaDao = categoriaDao;
	}

           public String novaCat() {

		categoria = new Categoria();

		return "formCategoria";
	}

            public String salvar() {

		System.out.println(categoria.getId() + categoria.getCatNome());
		categoriaDao.salvar(categoria);

		return "sucesso";
	}
}

daoGenerico


public interface DaoGenerico<T, ID extends Serializable> {
	public Class<T> getObjectClass();
	
	public T salvar(T object);

	public T pesquisarPorId(ID id);

	public T atualizar(T object);

	public void excluir(T object);

	public List<T> todos();

	public List<T> listPesqParam(String query, Map<String, Object> params);

	public List<T> listPesqParam(String query, Map<String, Object> params,
			int maximo, int atual);

	public List<T> listPesq(String query);

	public T pesqParam(String query, Map<String, Object> params);

}

CategoriaDaoImp

public class CategoriaDaoImp extends DaoGenericoImp<Categoria, Integer>
		implements CategoriaDao {

}

DaoGenericoImp

private EntityManager entityManager; 

	private final Class<T> oClass;//object class

	public Class<T> getObjectClass() {
		return this.oClass;
	}


	@SuppressWarnings("unchecked")
	@PersistenceContext
	public void setEntityManager(EntityManager em) {
		this.entityManager = em;
	}


	protected EntityManager getEntityManager() {
		if (entityManager == null)
			throw new IllegalStateException("Erro");
		return entityManager;
	}

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

	}


	
	@Transactional(readOnly = false, propagation = Propagation.REQUIRED)
	public T atualizar(T object) {
		getEntityManager().merge(object);

		return object;

	}

	
	@Transactional(readOnly = false, propagation = Propagation.REQUIRED)
	public void excluir(T object) {
		object = getEntityManager().merge(object);
		getEntityManager().remove(object);
	}



	
	public T pesquisarPorId(ID id) {
		return getEntityManager().find(oClass, id);
	}	


	
	@Transactional(readOnly = false, propagation = Propagation.REQUIRED)
	public T salvar(T object) {
		getEntityManager().clear();
		getEntityManager().persist(object);


		return object;
	}

	@SuppressWarnings("unchecked")
	public List<T> todos(){
		String queryS = "SELECT obj FROM "+oClass.getSimpleName()+" obj";
		Query query = getEntityManager().createQuery(queryS);
		return query.getResultList();

	}

	@SuppressWarnings("unchecked")
	public List<T> listPesqParam(String query, Map<String, Object> params){
		Query q = getEntityManager().createQuery(query);
		for(String chave : params.keySet()){
			q.setParameter(chave, params.get(chave));

		}
		return q.getResultList();
	}

	@SuppressWarnings("unchecked")
	public List<T> listPesqParam(String query, Map<String, Object> params,
			int maximo, int atual){
		Query q = getEntityManager().
					createQuery(query).
					setMaxResults(maximo).
					setFirstResult(atual);
		
		for(String chave : params.keySet()){
			q.setParameter(chave, params.get(chave));

		}
		return q.getResultList();
	}	
	
	@SuppressWarnings("unchecked")
	public List<T> listPesq(String query){
		Query q = getEntityManager().createQuery(query);
		return q.getResultList();
	}	
	
	@SuppressWarnings("unchecked")
	public T pesqParam(String query, Map<String, Object> params){
		Query q = getEntityManager().createQuery(query);
		for(String chave : params.keySet()){
			q.setParameter(chave, params.get(chave));

		}
		try{
			return (T) q.getSingleResult();
		}catch(NoResultException nre){
			return null;
		}
	}

Faces-config

<?xml version="1.0" encoding="UTF-8"?>
<faces-config version="1.2" xmlns="http://java.sun.com/xml/ns/javaee"
	xmlns:xi="http://www.w3.org/2001/XInclude"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd">
	<managed-bean>
		<managed-bean-name>produtoController</managed-bean-name>
		<managed-bean-class>
			com.exemplo.livro.controller.ProdutoControlle
		</managed-bean-class>
		<managed-bean-scope>session</managed-bean-scope>
	</managed-bean>
	<managed-bean>
		<managed-bean-name>categoriaController</managed-bean-name>
		<managed-bean-class>
			com.exemplo.livro.controller.CategoriaController
		</managed-bean-class>
		<managed-bean-scope>session</managed-bean-scope>
	</managed-bean>
	<managed-bean>
		<managed-bean-name>lojaController</managed-bean-name>
		<managed-bean-class>
			com.exemplo.livro.controller.LojaController
		</managed-bean-class>
		<managed-bean-scope>request</managed-bean-scope>
	</managed-bean>
	<!-- <application>
		<view-handler>com.sun.facelets.FaceletViewHandler</view-handler>
		</application> -->
	<application>
		<!-- Configura o apache myfaces trinidad para utilizar o uploadfile 
			responsável pelo gerenciamento dos componentes facelets -->
		<default-render-kit-id>
			org.apache.myfaces.trinidad.core
		</default-render-kit-id>
		<!-- Configura o spring para trabalhar com o jsf 1.2 -->
		<el-resolver>
			org.springframework.web.jsf.el.SpringBeanFacesELResolver
		</el-resolver>
	</application>
</faces-config>

applicationContext

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:tx="http://www.springframework.org/schema/tx"
	xmlns:context="http://www.springframework.org/schema/context"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
		http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd">

	<bean id="entityManagerFactory" 
          class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">		 
          <property name="persistenceXmlLocation" value="classpath:META-INF/persistence.xml"/>
    </bean>
    
	<!-- Identifica os beans anotados com @Service, @Repository, @Controller  -->
	<context:component-scan base-package="br.com.integrator.controller" />
	
	<!-- Habilita a configuração de beans via anotações
	sem a necessidade de usar PersistenceAnnotationBeanPostProcessor,
	AutowiredAnnotationBeanPostProcessor e etc
	 -->
	<context:annotation-config />
    
    <!-- Classe responsável pela gestão das transações -->
    <bean id="transactionManager" 
          class="org.springframework.orm.jpa.JpaTransactionManager">
        <property name="entityManagerFactory" ref="entityManagerFactory" />
    </bean>
    
    <!-- Marcação de transações através de anotações -->
    <tx:annotation-driven />
  	     
  	<bean id="categoriaDao" class="com.exemplo.livro.dao.imp.CategoriaDaoImp" />
	<bean id="produtoDao" class="com.exemplo.livro.dao.imp.ProdutoDaoImp" /> 
    <bean id="pedidoDao" class="com.exemplo.livro.dao.imp.PedidoDaoImp" /> 
	<bean id="itensPedidoDao" class="com.exemplo.livro.dao.imp.ItensPedidoDaoImp" /> 
	<bean id="usuarioDao" class="com.exemplo.livro.dao.imp.UsuarioDaoImp" />
</beans>

E finalmente a exceção.

12asfdasfd
17/10/2009 00:57:40 com.sun.faces.application.ActionListenerImpl processAction
SEVERE: java.lang.NullPointerException
javax.faces.el.EvaluationException: java.lang.NullPointerException
	at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:97)
	at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:95)
	at javax.faces.component.UICommand.broadcast(UICommand.java:383)
	at org.ajax4jsf.component.AjaxViewRoot.processEvents(AjaxViewRoot.java:321)
	at org.ajax4jsf.component.AjaxViewRoot.broadcastEvents(AjaxViewRoot.java:296)
	at org.ajax4jsf.component.AjaxViewRoot.processPhase(AjaxViewRoot.java:253)
	at org.ajax4jsf.component.AjaxViewRoot.processApplication(AjaxViewRoot.java:466)
	at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:97)
	at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:266)
	at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:132)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:244)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter.doFilterInternal(OpenEntityManagerInViewFilter.java:112)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:433)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
	at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.NullPointerException
	at com.exemplo.livro.controller.CategoriaController.salvar(CategoriaController.java:113)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.apache.el.parser.AstValue.invoke(AstValue.java:172)
	at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276)
	at com.sun.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:68)
	at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:77)
	... 27 more
17/10/2009 00:57:40 com.sun.faces.lifecycle.InvokeApplicationPhase execute
WARNING: #{categoriaController.salvar}: java.lang.NullPointerException
javax.faces.FacesException: #{categoriaController.salvar}: java.lang.NullPointerException
	at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:110)
	at javax.faces.component.UICommand.broadcast(UICommand.java:383)
	at org.ajax4jsf.component.AjaxViewRoot.processEvents(AjaxViewRoot.java:321)
	at org.ajax4jsf.component.AjaxViewRoot.broadcastEvents(AjaxViewRoot.java:296)
	at org.ajax4jsf.component.AjaxViewRoot.processPhase(AjaxViewRoot.java:253)
	at org.ajax4jsf.component.AjaxViewRoot.processApplication(AjaxViewRoot.java:466)
	at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:97)
	at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:266)
	at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:132)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:244)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter.doFilterInternal(OpenEntityManagerInViewFilter.java:112)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:433)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
	at java.lang.Thread.run(Thread.java:619)
Caused by: javax.faces.el.EvaluationException: java.lang.NullPointerException
	at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:97)
	at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:95)
	... 26 more
Caused by: java.lang.NullPointerException
	at com.exemplo.livro.controller.CategoriaController.salvar(CategoriaController.java:113)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.apache.el.parser.AstValue.invoke(AstValue.java:172)
	at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276)
	at com.sun.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:68)
	at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:77)
	... 27 more
17/10/2009 00:57:40 com.sun.faces.lifecycle.LifecycleImpl phase
WARNING: executePhase(INVOKE_APPLICATION 5,org.apache.myfaces.trinidadinternal.context.FacesContextFactoryImpl$CacheRenderKit@76fff7) threw exception
javax.faces.FacesException: #{categoriaController.salvar}: java.lang.NullPointerException
	at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:105)
	at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:266)
	at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:132)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:244)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter.doFilterInternal(OpenEntityManagerInViewFilter.java:112)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:433)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
	at java.lang.Thread.run(Thread.java:619)
Caused by: javax.faces.FacesException: #{categoriaController.salvar}: java.lang.NullPointerException
	at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:110)
	at javax.faces.component.UICommand.broadcast(UICommand.java:383)
	at org.ajax4jsf.component.AjaxViewRoot.processEvents(AjaxViewRoot.java:321)
	at org.ajax4jsf.component.AjaxViewRoot.broadcastEvents(AjaxViewRoot.java:296)
	at org.ajax4jsf.component.AjaxViewRoot.processPhase(AjaxViewRoot.java:253)
	at org.ajax4jsf.component.AjaxViewRoot.processApplication(AjaxViewRoot.java:466)
	at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:97)
	... 20 more
Caused by: javax.faces.el.EvaluationException: java.lang.NullPointerException
	at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:97)
	at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:95)
	... 26 more
Caused by: java.lang.NullPointerException
	at com.exemplo.livro.controller.CategoriaController.salvar(CategoriaController.java:113)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.apache.el.parser.AstValue.invoke(AstValue.java:172)
	at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276)
	at com.sun.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:68)
	at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:77)
	... 27 more
17/10/2009 00:57:40 org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet Faces Servlet threw exception
java.lang.NullPointerException
	at com.exemplo.livro.controller.CategoriaController.salvar(CategoriaController.java:113)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.apache.el.parser.AstValue.invoke(AstValue.java:172)
	at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276)
	at com.sun.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:68)
	at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:77)
	at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:95)
	at javax.faces.component.UICommand.broadcast(UICommand.java:383)
	at org.ajax4jsf.component.AjaxViewRoot.processEvents(AjaxViewRoot.java:321)
	at org.ajax4jsf.component.AjaxViewRoot.broadcastEvents(AjaxViewRoot.java:296)
	at org.ajax4jsf.component.AjaxViewRoot.processPhase(AjaxViewRoot.java:253)
	at org.ajax4jsf.component.AjaxViewRoot.processApplication(AjaxViewRoot.java:466)
	at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:97)
	at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:266)
	at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:132)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:244)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter.doFilterInternal(OpenEntityManagerInViewFilter.java:112)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:433)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
	at java.lang.Thread.run(Thread.java:619)

vc usou as bibliotecas que vieram no cd do livro ou pegou mais atualizadas? eu rodei esse exemplo e funcionou normal. pode ser alguma diferenca da versao das bibliotecas q vieram no cd que nao ta legal.

eu nao usei as que estão no cd, pq estou utilizando o maven, mais eu peguei a mesma versão. Há mais eu acho que, nao é por esse motivo que não está funcionando, pq eu consigo persistir quando eu rodo os testes unitários

e ae pessoal, alguem já passou por essa situaçao ???

essa eh a categoriacontroller completa?

se eu nao me engano ta faltando a inicialicacao da categoria. veja como ta o getCategoria(); pq se ele ta retornando so categoria sem inicializar vai dar esse erro.

nao estou com o livro do edson goncalves aqui. mas eu lembro q no

public Categoria getCategoria() {
    return categoria;
}

esta como acima. ele inicializa a variavel em outro metodo.
tenta fazer assim:

public Categoria getCategoria() {
    if(categoria==null) {
        categoria = new Categoria();
    }
}

ae ele inicializa a variavel e vc vai conseguir setar os valores da tela no bean

Eu conseguir identificar o erro, é o seguinte. Lá no meu applicationContext eu tenho um elemento

 <context:component-scan base-package="aqui faço o mapeamento dos meus controladores"/>

nele eu faço o mapeamento dos controladores que estão com anotações por exemplo: @Controller @Autowired e etcs.

faço o mapeamento do mesmo certinho ai vem o seguinte erro quando tento acessar minha página formCategoria.jsf, citada a cima.

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'categoriaController': Autowiring of methods failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire method: public void com.exemplo.livro.controller.CategoriaController.setCategoriaDao(com.exemplo.livro.DaoGenerico); nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No unique bean of type [com.exemplo.livro.DaoGenerico] is defined: expected single matching bean but found 5: [categoriaDao, produtoDao, pedidoDao, itensPedidoDao, usuarioDao] at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:256) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:998) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:472) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409) at java.security.AccessController.doPrivileged(Native Method) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380) at org.springframework.beans.factory.support.AbstractBeanFactory$2.getObject(AbstractBeanFactory.java:302) at org.springframework.web.context.request.AbstractRequestAttributesScope.get(AbstractRequestAttributesScope.java:43) at org.springframework.web.context.request.SessionScope.get(SessionScope.java:90) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:298) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164) at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:881) at org.springframework.beans.factory.access.el.SpringBeanELResolver.getValue(SpringBeanELResolver.java:55) at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:54) at com.sun.faces.el.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:58) at org.apache.el.parser.AstIdentifier.getValue(AstIdentifier.java:61) at org.apache.el.parser.AstValue.getValue(AstValue.java:107) at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186) at com.sun.facelets.el.TagValueExpression.getValue(TagValueExpression.java:71) at javax.faces.component.UIOutput.getValue(UIOutput.java:173) at com.sun.faces.renderkit.html_basic.HtmlBasicInputRenderer.getValue(HtmlBasicInputRenderer.java:100) at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.getCurrentValue(HtmlBasicRenderer.java:282) at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeEnd(HtmlBasicRenderer.java:208) at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:848) at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:241) at com.sun.faces.renderkit.html_basic.GridRenderer.encodeChildren(GridRenderer.java:270) at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:828) at javax.faces.component.UIComponent.encodeAll(UIComponent.java:883) at javax.faces.component.UIComponent.encodeAll(UIComponent.java:889) at javax.faces.component.UIComponent.encodeAll(UIComponent.java:889) at com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java:578) at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:178) at org.apache.myfaces.trinidadinternal.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:176) at org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:100) at org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:176) at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:108) at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:266) at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:159) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:245) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178) at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290) at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:368) at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:495) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter.doFilterInternal(OpenEntityManagerInViewFilter.java:112) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:433) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454) at java.lang.Thread.run(Thread.java:619) Caused by: org.springframework.beans.factory.BeanCreationException: Could not autowire method: public void com.exemplo.livro.controller.CategoriaController.setCategoriaDao(com.exemplo.livro.DaoGenerico); nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No unique bean of type [com.exemplo.livro.DaoGenerico] is defined: expected single matching bean but found 5: [categoriaDao, produtoDao, pedidoDao, itensPedidoDao, usuarioDao] at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredMethodElement.inject(AutowiredAnnotationBeanPostProcessor.java:543) at org.springframework.beans.factory.annotation.InjectionMetadata.injectMethods(InjectionMetadata.java:117) at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:253) ... 62 more Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No unique bean of type [com.exemplo.livro.DaoGenerico] is defined: expected single matching bean but found 5: [categoriaDao, produtoDao, pedidoDao, itensPedidoDao, usuarioDao] at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:621) at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredMethodElement.inject(AutowiredAnnotationBeanPostProcessor.java:499) ... 64 more

o que pode ser isso pessoal ?

eu só nao consigo entender o seguinte… quando eu rodo minha classe de teste ela funciona normal, ele consegue injetar a dependencia


@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "classpath:applicationContext.xml"})
public class TestCategoriaDao {

	private CategoriaDao categoriaDao;
	private Categoria categoria;

	@Autowired
	public void setCaegoriaDao(CategoriaDao categoriaDao) {
		this.categoriaDao = categoriaDao;
	}

	@Test
	public void testSalvar() {
		categoria = null;
		categoria = categoriaDao.salvar(getCategoria());
		assertNotNull(categoria);

		assertEquals("Teste", categoria.getCatNome());

	}

	@Test
	public void testAtualizar() {
		categoria = categoriaDao.pesquisarPorId(4);
		categoria.setCatNome("Teste 2");

		categoria = categoriaDao.atualizar(categoria);
		assertNotNull(categoria);
		assertEquals("Teste 2", categoria.getCatNome());

	}

	private Categoria getCategoria() {
		Categoria categoria = new Categoria();
		categoria.setCatNome("Teste");
		return categoria;
	}

	@Test
	public void testTodos() {
		List<Categoria> categorias = categoriaDao.todos();
		assertNotNull(categorias);
	}

	@Test
	public void testListPesqParam() {
		Map<String, Object> params = new HashMap<String, Object>();

		params.put("id", 4);
		List<Categoria> categorias = categoriaDao.listPesqParam(
				"SELECT p FROM Categoria p WHERE p.id=:id", params);
		assertNotNull(categorias);
		assertEquals(1, categorias.size());
		assertEquals("Teste 2", categorias.get(0).getCatNome());

	}

	@Test
	public void testPesqParam() {
		Map<String, Object> params = new HashMap<String, Object>();
		params.put("id", 4);
		Categoria categoria = categoriaDao.pesqParam(
				"SELECT p FROM Categoria p WHERE p.id=:id", params);
		assertNotNull(categoria);
		assertEquals("Teste 2", categoria.getCatNome());

	}

	@Ignore
	@Test
	public void testExcluir() {
		this.categoria = categoriaDao.pesquisarPorId(5);
		categoriaDao.excluir(categoria);
		Assert.assertNull(categoriaDao.pesquisarPorId(5));
	}

}