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 ???