Problemas pra integrar JSF 2.0 com Spring 3.0

5 respostas
D

Boa noite pessoal
Eu li este post http://vonjuliano.wordpress.com/2011/08/02/integrando-jsf-2-e-spring,
para tentar fazer a integração do JSF com o Spring, mas não estou conseguindo;

Acredito que seja um pequeno detalhe, que não consegui enxergar.

Abaixo segue os arquivos que estou mexendo

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/j2ee"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee  
	                    http://java.sun.com/xml/ns/j2ee/web-app_3_0.xsd">

	<display-name>Projeto</display-name>

	<welcome-file-list>
		<welcome-file>index.html</welcome-file>
		<welcome-file>index.htm</welcome-file>
		<welcome-file>index.jsp</welcome-file>
	</welcome-file-list>

	<!-- JSF e PrimeFaces -->
	<servlet>
    	<servlet-name>Faces Servlet</servlet-name>
    	<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
    	<load-on-startup>1</load-on-startup>
  	</servlet>
  	
  	<servlet-mapping>
    	<servlet-name>Faces Servlet</servlet-name>
    	<url-pattern>*.html</url-pattern>
  	</servlet-mapping>
  
	<context-param>
		<param-name>primefaces.THEME</param-name>
		<param-value>cupertino</param-value>
	</context-param>

	<!-- Upload de Arquivos com PrimeFaces -->
	<filter>
		<filter-name>PrimeFaces FileUpload Filter</filter-name>
		<filter-class>org.primefaces.webapp.filter.FileUploadFilter</filter-class>
	</filter>

	<filter-mapping>
		<filter-name>PrimeFaces FileUpload Filter</filter-name>
		<servlet-name>Faces Servlet</servlet-name>
	</filter-mapping>

	<context-param>
		<param-name>com.sun.faces.expressionFactory</param-name>
		<param-value>com.sun.el.ExpressionFactoryImpl</param-value>
	</context-param>

	<!-- Conexao Filter 
	<filter>
		<filter-name>conexaoFilter</filter-name>
		<filter-class>classe.Projeto.utils.ConexaoHibernateFilter</filter-class>
	</filter>

	<filter-mapping>
		<filter-name>conexaoFilter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>
	-->
	
	<!-- Spring Security -->
	<context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>
			/WEB-INF/applicationContext.xml
			/WEB-INF/applicationContext-security.xml
		</param-value>
	</context-param>
	
	<filter>
		<filter-name>springSecurityFilterChain</filter-name>
		<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
	</filter>

	<filter-mapping>
		<filter-name>springSecurityFilterChain</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>

	<listener>
		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	</listener>

	<listener>
		<listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
	</listener>
	
</web-app>

FacesConfig

<?xml version="1.0" encoding="UTF-8"?>
<faces-config xmlns="http://java.sun.com/xml/ns/javaee"
	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_2_0.xsd" version="2.0">
	
	<application>  
   		<el-resolver>org.springframework.web.jsf.el.SpringBeanFacesELResolver</el-resolver>  
	</application>
	
	<!-- Navigation-rule -->
   	<navigation-rule>  
        <from-view-id>*</from-view-id>  
             <navigation-case>  
                  <from-outcome>gerenciador</from-outcome>  
                  <to-view-id>/content/login/index.html</to-view-id>  
                  <redirect />  
             </navigation-case>  
    </navigation-rule>  

   	<navigation-rule>  
        <from-view-id>*</from-view-id>  
             <navigation-case>  
                  <from-outcome>gerenciador/content</from-outcome>  
                  <to-view-id>/login/index.html</to-view-id>  
                  <redirect />  
             </navigation-case>  
    </navigation-rule>  
	
	<!-- Managed Bean -->
	<!-- Bean Estado -->
	<managed-bean>
		<managed-bean-name>EstadoListagemBean</managed-bean-name>
		<managed-bean-class>classe.Projeto.bean.EstadoListagemBean</managed-bean-class>
		<managed-bean-scope>view</managed-bean-scope>
	</managed-bean>

	<managed-bean>
		<managed-bean-name>EstadoCadastroBean</managed-bean-name>
		<managed-bean-class>classe.Projeto.bean.EstadoCadastroBean</managed-bean-class>
		<managed-bean-scope>request</managed-bean-scope>
	</managed-bean>

	<!-- Bean Cidade -->
	<managed-bean>
		<managed-bean-name>CidadeListagemBean</managed-bean-name>
		<managed-bean-class>classe.Projeto.bean.CidadeListagemBean</managed-bean-class>
		<managed-bean-scope>view</managed-bean-scope>
	</managed-bean>
	
	<managed-bean>
		<managed-bean-name>CidadeCadastroBean</managed-bean-name>
		<managed-bean-class>classe.Projeto.bean.CidadeCadastroBean</managed-bean-class>
		<managed-bean-scope>request</managed-bean-scope>
	</managed-bean>
	
	<!-- Bean Cliente -->
	<managed-bean>
		<managed-bean-name>ClienteCadastroBean</managed-bean-name>
		<managed-bean-class>classe.Projeto.bean.ClienteCadastroBean</managed-bean-class>
		<managed-bean-scope>request</managed-bean-scope>
	</managed-bean>
	
	<managed-bean>
		<managed-bean-name>ClienteListagemBean</managed-bean-name>
		<managed-bean-class>classe.Projeto.bean.ClienteListagemBean</managed-bean-class>
		<managed-bean-scope>view</managed-bean-scope>
	</managed-bean>
	
	<!-- Bean Cargo -->
	<managed-bean>
		<managed-bean-name>CargoCadastroBean</managed-bean-name>
		<managed-bean-class>classe.Projeto.bean.CargoCadastroBean</managed-bean-class>
		<managed-bean-scope>request</managed-bean-scope>
	</managed-bean>
	
	<managed-bean>
		<managed-bean-name>CargoListagemBean</managed-bean-name>
		<managed-bean-class>classe.Projeto.bean.CargoListagemBean</managed-bean-class>
		<managed-bean-scope>view</managed-bean-scope>
	</managed-bean>
	
	<!-- Bean Funcionario -->
	
	<managed-bean>
		<managed-bean-name>FuncionarioCadastroBean</managed-bean-name>
		<managed-bean-class>classe.Projeto.bean.FuncionarioCadastroBean</managed-bean-class>
		<managed-bean-scope>request</managed-bean-scope>
	</managed-bean>
	
	<managed-bean>
		<managed-bean-name>FuncionarioListagemBean</managed-bean-name>
		<managed-bean-class>classe.Projeto.bean.FuncionarioListagemBean</managed-bean-class>
		<managed-bean-scope>view</managed-bean-scope>
	</managed-bean>
	
	
	<!-- Bean Fornecedor -->
	<managed-bean>
		<managed-bean-name>FornecedorCadastroBean</managed-bean-name>
		<managed-bean-class>classe.Projeto.bean.FornecedorCadastroBean</managed-bean-class>
		<managed-bean-scope>request</managed-bean-scope>
	</managed-bean>
	
	<managed-bean>
		<managed-bean-name>FornecedorListagemBean</managed-bean-name>
		<managed-bean-class>classe.Projeto.bean.FornecedorListagemBean</managed-bean-class>
		<managed-bean-scope>view</managed-bean-scope>
	</managed-bean>
	
	
	<!-- Bean Unidade -->
	<managed-bean>
		<managed-bean-name>UnidadeEmpresarialCadastroBean</managed-bean-name>
		<managed-bean-class>classe.Projeto.bean.UnidadeEmpresarialCadastroBean</managed-bean-class>
		<managed-bean-scope>request</managed-bean-scope>
	</managed-bean>
	
	<managed-bean>
		<managed-bean-name>UnidadeEmpresarialListagemBean</managed-bean-name>
		<managed-bean-class>classe.Projeto.bean.UnidadeEmpresarialListagemBean</managed-bean-class>
		<managed-bean-scope>view</managed-bean-scope>
	</managed-bean>
	
	
	<!-- Bean Filial -->
	<managed-bean>
		<managed-bean-name>FilialCadastroBean</managed-bean-name>
		<managed-bean-class>classe.Projeto.bean.FilialCadastroBean</managed-bean-class>
		<managed-bean-scope>request</managed-bean-scope>
	</managed-bean>
	
	<managed-bean>
		<managed-bean-name>FilialListagemBean</managed-bean-name>
		<managed-bean-class>classe.Projeto.bean.FilialListagemBean</managed-bean-class>
		<managed-bean-scope>view</managed-bean-scope>
	</managed-bean>
	
	<!-- Bean Setor -->
	<managed-bean>
		<managed-bean-name>SetorCadastroBean</managed-bean-name>
		<managed-bean-class>classe.Projeto.bean.SetorCadastroBean</managed-bean-class>
		<managed-bean-scope>request</managed-bean-scope>
	</managed-bean>
	
	<managed-bean>
		<managed-bean-name>SetorListagemBean</managed-bean-name>
		<managed-bean-class>classe.Projeto.bean.SetorListagemBean</managed-bean-class>
		<managed-bean-scope>view</managed-bean-scope>
	</managed-bean>
	
	<!-- Bean UnidadeMedida -->
	<managed-bean>
		<managed-bean-name>UnidadeMedidaCadastroBean</managed-bean-name>
		<managed-bean-class>classe.Projeto.bean.UnidadeMedidaCadastroBean</managed-bean-class>
		<managed-bean-scope>request</managed-bean-scope>
	</managed-bean>
	
	<managed-bean>
		<managed-bean-name>UnidadeMedidaListagemBean</managed-bean-name>
		<managed-bean-class>classe.Projeto.bean.UnidadeMedidaListagemBean</managed-bean-class>
		<managed-bean-scope>view</managed-bean-scope>
	</managed-bean>
	
	<!-- Bean CategoriaProduto -->
	<managed-bean>
		<managed-bean-name>CategoriaProdutoCadastroBean</managed-bean-name>
		<managed-bean-class>classe.Projeto.bean.CategoriaProdutoCadastroBean</managed-bean-class>
		<managed-bean-scope>request</managed-bean-scope>
	</managed-bean>
	
	<managed-bean>
		<managed-bean-name>CategoriaProdutoListagemBean</managed-bean-name>
		<managed-bean-class>classe.Projeto.bean.CategoriaProdutoListagemBean</managed-bean-class>
		<managed-bean-scope>view</managed-bean-scope>
	</managed-bean>
	
	<!-- Bean CFOP -->
	<managed-bean>
		<managed-bean-name>CfopCadastroBean</managed-bean-name>
		<managed-bean-class>classe.Projeto.bean.CfopCadastroBean</managed-bean-class>
		<managed-bean-scope>request</managed-bean-scope>
	</managed-bean>
	
	<managed-bean>
		<managed-bean-name>CfopListagemBean</managed-bean-name>
		<managed-bean-class>classe.Projeto.bean.CfopListagemBean</managed-bean-class>
		<managed-bean-scope>view</managed-bean-scope>
	</managed-bean>
	
	<!-- Bean Materia Prima -->
	<managed-bean>
		<managed-bean-name>MateriaPrimaCadastroBean</managed-bean-name>
		<managed-bean-class>classe.Projeto.bean.MateriaPrimaCadastroBean</managed-bean-class>
		<managed-bean-scope>request</managed-bean-scope>
	</managed-bean>
	
	<managed-bean>
		<managed-bean-name>MateriaPrimaListagemBean</managed-bean-name>
		<managed-bean-class>classe.Projeto.bean.MateriaPrimaListagemBean</managed-bean-class>
		<managed-bean-scope>view</managed-bean-scope>
	</managed-bean>
	
	<!-- Bean Produto Final -->
	<managed-bean>
		<managed-bean-name>ProdutoFinalCadastroBean</managed-bean-name>
		<managed-bean-class>classe.Projeto.bean.ProdutoFinalCadastroBean</managed-bean-class>
		<managed-bean-scope>request</managed-bean-scope>
	</managed-bean>
	
	<managed-bean>
		<managed-bean-name>ProdutoFinalListagemBean</managed-bean-name>
		<managed-bean-class>classe.Projeto.bean.ProdutoFinalListagemBean</managed-bean-class>
		<managed-bean-scope>request</managed-bean-scope>
	</managed-bean>
	
	<!-- Bean Insumo -->
	<managed-bean>
		<managed-bean-name>InsumoCadastroBean</managed-bean-name>
		<managed-bean-class>classe.Projeto.bean.InsumoCadastroBean</managed-bean-class>
		<managed-bean-scope>view</managed-bean-scope>
	</managed-bean>
	
	<!-- Bean Transportadora -->
	<managed-bean>
		<managed-bean-name>TransportadoraCadastroBean</managed-bean-name>
		<managed-bean-class>classe.Projeto.bean.TransportadoraCadastroBean</managed-bean-class>
		<managed-bean-scope>request</managed-bean-scope>
	</managed-bean>
	
	<managed-bean>
		<managed-bean-name>TransportadoraListagemBean</managed-bean-name>
		<managed-bean-class>classe.Projeto.bean.TransportadoraListagemBean</managed-bean-class>
		<managed-bean-scope>view</managed-bean-scope>
	</managed-bean>
	
	<!-- Bean Especie -->
	<managed-bean>
		<managed-bean-name>EspecieCadastroBean</managed-bean-name>
		<managed-bean-class>classe.Projeto.bean.EspecieCadastroBean</managed-bean-class>
		<managed-bean-scope>request</managed-bean-scope>
	</managed-bean>
	
	<managed-bean>
		<managed-bean-name>EspecieListagemBean</managed-bean-name>
		<managed-bean-class>classe.Projeto.bean.EspecieListagemBean</managed-bean-class>
		<managed-bean-scope>view</managed-bean-scope>
	</managed-bean>
	
	<!-- Bean Nota Fiscal -->
	<managed-bean>
		<managed-bean-name>NotaFiscalCadastroBean</managed-bean-name>
		<managed-bean-class>classe.Projeto.bean.NotaFiscalCadastroBean</managed-bean-class>
		<managed-bean-scope>view</managed-bean-scope>
	</managed-bean>
	
	<managed-bean>
		<managed-bean-name>NotaFiscalListagemBean</managed-bean-name>
		<managed-bean-class>classe.Projeto.bean.NotaFiscalListagemBean</managed-bean-class>
		<managed-bean-scope>view</managed-bean-scope>
	</managed-bean>
	
	
	<!-- Bean's Gerais -->
	
	<!-- Bean Projeto -->
	<managed-bean>
		<managed-bean-name>ProjetoBean</managed-bean-name>
		<managed-bean-class>classe.Projeto.bean.ProjetoBean</managed-bean-class>
		<managed-bean-scope>view</managed-bean-scope>
	</managed-bean>
	
	<!-- Bean Menu -->
	<managed-bean>
		<managed-bean-name>MenuBean</managed-bean-name>
		<managed-bean-class>classe.Projeto.bean.MenuBean</managed-bean-class>
		<managed-bean-scope>request</managed-bean-scope>
	</managed-bean>

	<!-- Bean Contexto -->
	<managed-bean>
		<managed-bean-name>ContextoBean</managed-bean-name>
		<managed-bean-class>classe.Projeto.bean.ContextoBean</managed-bean-class>
		<managed-bean-scope>session</managed-bean-scope>
	</managed-bean>
	
	<!-- Bean Mensagem -->
	<managed-bean>
		<managed-bean-name>MensagemBean</managed-bean-name>
		<managed-bean-class>classe.Projeto.bean.MensagemBean</managed-bean-class>
		<managed-bean-scope>request</managed-bean-scope>
	</managed-bean>
	
	<!-- Bean Mascara -->
	<managed-bean>
		<managed-bean-name>MascaraBean</managed-bean-name>
		<managed-bean-class>classe.Projeto.bean.MascaraBean</managed-bean-class>
		<managed-bean-scope>request</managed-bean-scope>
	</managed-bean>
	
	
	<!-- Converter's -->
	
	<!-- Converter Estado-->
	<converter>
		<converter-id>EstadoConverter</converter-id>
		<converter-class>classe.Projeto.converter.EstadoConverter</converter-class>
	</converter>
	
	<!-- Converter Cidade-->
	<converter>
		<converter-id>CidadeConverter</converter-id>
		<converter-class>classe.Projeto.converter.CidadeConverter</converter-class>
	</converter>
	
	<!-- Converter Telefone-->
	<converter>
		<converter-id>TelefoneConverter</converter-id>
		<converter-class>classe.Projeto.converter.TelefoneConverter</converter-class>
	</converter>
	
	<!-- Converter Cliente-->
	<converter>
		<converter-id>ClienteConverter</converter-id>
		<converter-class>classe.Projeto.converter.ClienteConverter</converter-class>
	</converter>
	
	<!-- Converter Filial-->
	<converter>
		<converter-id>FilialConverter</converter-id>
		<converter-class>classe.Projeto.converter.FilialConverter</converter-class>
	</converter>
	
	<!-- Converter Cargo-->
	<converter>
		<converter-id>CargoConverter</converter-id>
		<converter-class>classe.Projeto.converter.CargoConverter</converter-class>
	</converter>
	
	<!-- Converter CategoriaProduto-->
	<converter>
		<converter-id>CategoriaProdutoConverter</converter-id>
		<converter-class>classe.Projeto.converter.CategoriaProdutoConverter</converter-class>
	</converter>
	
	<!-- Converter UnidadeMedida-->
	<converter>
		<converter-id>UnidadeMedidaConverter</converter-id>
		<converter-class>classe.Projeto.converter.UnidadeMedidaConverter</converter-class>
	</converter>
	
	<!-- Converter ProdutoFinal-->
	<converter>
		<converter-id>ProdutoFinalConverter</converter-id>
		<converter-class>classe.Projeto.converter.ProdutoFinalConverter</converter-class>
	</converter>
	
	<!-- Converter MateriaPrima-->
	<converter>
		<converter-id>MateriaPrimaConverter</converter-id>
		<converter-class>classe.Projeto.converter.MateriaPrimaConverter</converter-class>
	</converter>
	
	<!-- Converter Fornecedor-->
	<converter>
		<converter-id>FornecedorConverter</converter-id>
		<converter-class>classe.Projeto.converter.FornecedorConverter</converter-class>
	</converter>
	
	<!-- Converter CFOP-->
	<converter>
		<converter-id>CfopConverter</converter-id>
		<converter-class>classe.Projeto.converter.CfopConverter</converter-class>
	</converter>
	
	<!-- Converter Transportadora-->
	<converter>
		<converter-id>TransportadoraConverter</converter-id>
		<converter-class>classe.Projeto.converter.TransportadoraConverter</converter-class>
	</converter>
	
	<!-- Converter Especie-->
	<converter>
		<converter-id>EspecieConverter</converter-id>
		<converter-class>classe.Projeto.converter.EspecieConverter</converter-class>
	</converter>
	
	<!-- Converter UnidadeEmpresarial-->
	<converter>
		<converter-id>UnidadeEmpresarialConverter</converter-id>
		<converter-class>classe.Projeto.converter.UnidadeEmpresarialConverter</converter-class>
	</converter>
	
	<!-- Validator's -->
	
	<!-- Validator E-mail -->
	<validator>  
        <validator-id>validaEmail</validator-id>  
        <validator-class>classe.Projeto.validator.ValidaEmail</validator-class>  
    </validator>
    
</faces-config>

Service

package classe.Projeto.estado;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import classe.Projeto.estado.Estado;

import classe.Projeto.estado.EstadoDAO;

import classe.Projeto.estado.EstadoRN;

import classe.Projeto.utils.DAOException;

import classe.Projeto.utils.RNException;

@Service(“estadoRN”)
public class EstadoRNImp implements EstadoRN {

@Autowired
private EstadoDAO estadoDAO;

public void Salvar(Estado estado) throws RNException{
	try {
		this.estadoDAO.Salvar(estado);
	} catch (DAOException dao) {
		throw new RNException(dao.getMessage());
	}
}

public void Excluir(Estado estado) throws RNException{
	try {
		this.estadoDAO.Excluir(estado);
	} catch (DAOException dao) {
		throw new RNException(dao.getMessage());
	}
}

public Integer TotalRegistros(){
	return this.estadoDAO.TotalRegistros();
}

public Estado Obter (Estado estado){
	return this.estadoDAO.Obter(estado);
}

public List<Estado> Pesquisar(Estado estado, String campoOrdenacao, String ordenacao, Integer pagina,  Integer limit){
	return this.estadoDAO.Pesquisar(estado, campoOrdenacao, ordenacao, pagina, limit);
}

}

e o Bean

package classe.Projeto.bean;

import java.util.ArrayList;

import java.util.List;

import java.util.Map;
import javax.annotation.PostConstruct;

import javax.faces.application.FacesMessage;

import javax.faces.bean.ManagedBean;

import javax.faces.bean.ManagedProperty;

import javax.faces.bean.ViewScoped;

import javax.faces.context.FacesContext;

import org.primefaces.model.LazyDataModel;

import classe.Projeto.estado.Estado;

import classe.Projeto.estado.EstadoRN;

import classe.Projeto.utils.GlossarioMensagens;

import classe.Projeto.utils.GlossarioTexto;

import classe.Projeto.utils.RNException;
@ManagedBean(name=EstadoListagemBean)

@ViewScoped

public class EstadoListagemBean{
private Estado estado 			= 	new Estado();
private Estado[] estadoSelecionados;
private LazyDataModel<Estado> lazyModel;

@ManagedProperty(name="estadoRN", value="#{estadoRN}")
private EstadoRN estadoRN;

public void setEstadoRN(EstadoRN estadoRN) {
	this.estadoRN = estadoRN;
}

public EstadoListagemBean(){
	this.CarregaLazyDataModel();
}

@PostConstruct  
private void CarregaLazyDataModel() {  
	
	this.lazyModel 			= new LazyDataModel<Estado>() {

		private static final long serialVersionUID = 1829143374090645173L;

		@Override
		public List<Estado> load(int first, int pageSize, String sortField, boolean sortOrder, Map<String, String> filters) {
			List<Estado> listaEstado 	= 	new ArrayList<Estado>();
			return Pesquisar(listaEstado, sortField, sortOrder, first, pageSize);
		}
	};
	
	lazyModel.setRowCount(estadoRN.TotalRegistros()); 
} 

private List<Estado> Pesquisar(List<Estado> listEstado, String campoOrdecacao,boolean ordenacao, int pagina, int limit){
	
	String orderBy 			= 		ordenacao?"ASC":"DESC";
	listEstado				=		estadoRN.Pesquisar(this.estado, campoOrdecacao, orderBy, pagina, limit);
	return listEstado;
	
}

public LazyDataModel<Estado> getLazyModel() {
	return this.lazyModel;
}

public String Excluir(){
	
	if( estadoSelecionados.length > 0) {
		
		try {
			
			for (Estado estado : estadoSelecionados) {
				estadoRN.Excluir(estado);
	        }
			
			FacesContext context 	= 	FacesContext.getCurrentInstance();
			FacesMessage msg 	 	=	new FacesMessage(GlossarioTexto.getInstance().getSucesso(),GlossarioMensagens.getInstance().getMSG03());
			context.addMessage(null, msg);
		
		} catch (RNException rn) {
			
			FacesContext context 	= 	FacesContext.getCurrentInstance();
			FacesMessage msg 	 	=	new FacesMessage(GlossarioTexto.getInstance().getErro(),rn.getMessage());
			context.addMessage(null, msg);
			
		}
		
	}else{
		
		FacesContext context 	= 	FacesContext.getCurrentInstance();
		FacesMessage msg 	 	=	new FacesMessage(FacesMessage.SEVERITY_WARN,GlossarioTexto.getInstance().getAtencao(),GlossarioMensagens.getInstance().getMSG11());
		context.addMessage(null, msg);
		
	}

	return "/gerenciador/content/estado/index";
}

public Estado[] getEstadoSelecionados() {
	return estadoSelecionados;
}

public void setEstadoSelecionados(Estado[] estadoSelecionados) {
	this.estadoSelecionados = estadoSelecionados;
}

public Estado getEstado() {
	return estado;
}

}

o problema que tenho é que a propriedade estadoRN sempre fica null.
Alguem pode me ajudar ???

5 Respostas

fabiozanardi

se você der um System.out no sevice para o EstadoRN, ele chega corretamente, ou também é marcado como null?

D

Boa noite fabiozanardi

está vindo null

já tentei tbm de outrar formas, como por exemplo

@Autowired
private EstadoRN estadoRN;

@Inject
private EstadoRN estadoRN;

@Resource(name=“estadoRN”)
private EstadoRN estadoRN;

mas todas vem nulll

o que pode ser ?

fabiozanardi

hmmm, então o problema não está no jsf, pois está ocorrendo antes, na camada de serviço,

na sua camada de persistencia o valor na função também retorna null?

D

Sim está…

abaixo irei passar os arquivos que configurei tbm, com a ajuda de outros artigos, sobre como configurar o hibernate e o spring.

Achei que nessa parte estava tudo certo, porque está exatamente igual;

Deve ser um pequeno detalhe…

mas agradeço a ajuda…

segue o service

@Service("estadoRN")
public class EstadoRNImp implements EstadoRN {

	@Autowired
	private EstadoDAO estadoDAO;
	
	public void Salvar(Estado estado) throws RNException{
		try {
			this.estadoDAO.Salvar(estado);
		} catch (DAOException dao) {
			throw new RNException(dao.getMessage());
		}
	}
	
	public void Excluir(Estado estado) throws RNException{
		try {
			this.estadoDAO.Excluir(estado);
		} catch (DAOException dao) {
			throw new RNException(dao.getMessage());
		}
	}
	
	public Integer TotalRegistros(){
		return this.estadoDAO.TotalRegistros();
	}
	
	public Estado Obter (Estado estado){
		return this.estadoDAO.Obter(estado);
	}
	
	public List<Estado> Pesquisar(Estado estado, String campoOrdenacao, String ordenacao, Integer pagina,  Integer limit){
		return this.estadoDAO.Pesquisar(estado, campoOrdenacao, ordenacao, pagina, limit);
	}
	
}

o repository

@Repository("estadoDAO")
public class EstadoDAOHibernate implements EstadoDAO {
	
	private SessionFactory 	session;
	private String 			filtroQuery; 

	@Autowired
	@Override
	public void setSession(SessionFactory session) {
		this.session = session;
	}
	
	public Session getSession() {
		return session.getCurrentSession();
	}
	
	private void setFiltroQuery(Estado estado){
		this.filtroQuery = FiltroQuery.FiltroQuery(estado);
	}
	

	@Override
	public void Salvar(Estado estado) throws DAOException {
		
		if (estado.getEstadoID() == null ){
			try {
				getSession().save(estado);
			} catch (Exception e) {
				throw new DAOException(GlossarioMensagens.getInstance().getMSG04());
			}
		}else{
			try {
				getSession().update(estado);
			} catch (Exception e) {
				throw new DAOException(GlossarioMensagens.getInstance().getMSG05());
			}
		}
	}

	@Override
	public void Excluir(Estado estado) throws DAOException{
		
		try {
			getSession().delete(estado);
			getSession().flush();
		} catch (Exception e) {
			throw new DAOException(GlossarioMensagens.getInstance().getMSG06());
		}finally{
			getSession().clear();
		}
			
	}
	
	@SuppressWarnings("deprecation")
	@Override
	public Integer TotalRegistros() {
		String sql			   	= 	"SELECT COUNT(*) AS totalRegistros FROM vwlistaestado " ;
		Query consulta	        =	getSession().createSQLQuery(sql).addScalar("totalRegistros", Hibernate.INTEGER);
		Integer totalRegistros  =   (Integer) consulta.uniqueResult();
		return totalRegistros;
	}
	
	@Override
	public Estado Obter(Estado estado) {
		this.setFiltroQuery(estado);
		String sql			   	= 	"SELECT * FROM vwlistaestado " + this.filtroQuery ;
		Query consulta	        =	getSession().createSQLQuery(sql).addEntity(Estado.class);
		return (Estado)			consulta.uniqueResult();		
	}

	@SuppressWarnings("unchecked")
	@Override
	public List<Estado> Pesquisar(Estado estado, String campoOrdenacao, String ordenacao, Integer pagina,  Integer limit) {
		
		this.setFiltroQuery(estado);
		
		String sql			   		= 	" SELECT * FROM vwlistaestado " + this.filtroQuery;
		sql							=	ValidaOrdenacaoLimit.ValidaOrdenacaoLimit(sql, campoOrdenacao, ordenacao, pagina, limit);
		Query consulta	        	=	getSession().createSQLQuery(sql).addEntity(Estado.class);
		List<Estado> listaEstado  	=	consulta.list();
		return listaEstado;		
	}

}

e o applicationContext.xml

<?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:p="http://www.springframework.org/schema/p" 
       	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-3.0.xsd
			http://www.springframework.org/schema/tx 
			http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
			http://www.springframework.org/schema/context
			http://www.springframework.org/schema/context/spring-context-3.0.xsd">
	
	
	<context:property-placeholder location="/WEB-INF/spring/spring.properties" />
	<context:annotation-config/> 
	<context:component-scan base-package="classe.Projeto"/>
    
    <!-- Enable annotation style of managing transactions -->
	<tx:annotation-driven transaction-manager="transactionManager" />	
   
    <!-- Declare the Hibernate SessionFactory for retrieving Hibernate sessions -->
    <!-- See http://static.springsource.org/spring/docs/3.0.x/javadoc-api/org/springframework/orm/hibernate3/annotation/AnnotationSessionFactoryBean.html --> 							
	<!-- See http://docs.jboss.org/hibernate/stable/core/api/index.html?org/hibernate/SessionFactory.html -->
	<!-- See http://docs.jboss.org/hibernate/stable/core/api/index.html?org/hibernate/Session.html -->
	<bean id="sessionFactory" 
		  class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"
		  p:dataSource-ref="dataSource"
		  p:configLocation="${hibernate.config}"/>
	
	
	<!-- Declare a datasource that has pooling capabilities-->	 
	<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"
				destroy-method="close"
				p:driverClass="${app.jdbc.driverClassName}"
				p:jdbcUrl="${app.jdbc.url}"
				p:user="${app.jdbc.username}"
				p:password="${app.jdbc.password}"
				p:acquireIncrement="5"
				p:idleConnectionTestPeriod="60"
				p:maxPoolSize="100"
				p:maxStatements="50"
				p:minPoolSize="10" />

	<!-- Declare a transaction manager-->
	<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager" p:sessionFactory-ref="sessionFactory" />
  	
</beans>
D

Pessoal, li esse artigo

e minha app está certinho, conforme o post

mas na camada de servico a injeção do DAO vem null;

Poderiam me ajudar a descobrir o motivo ?

Criado 27 de fevereiro de 2012
Ultima resposta 28 de fev. de 2012
Respostas 5
Participantes 2