DI Spring 3 + JSF 2

Aew galera estou tentando desenvolver uma aplicacao com Spring 3 + JSF 2 mas nao estou conseguindo fazer a DI funcionar segue as classes dao, service e controller

[code]@Repository(“empresaDao”)
public class EmpresaDaoImpl extends HibernateDaoSupport implements EmpresaDao {

public List<Empresa> findAll() {
    return getHibernateTemplate().loadAll(Empresa.class);
}

public void grava(Empresa e) {
    getHibernateTemplate().saveOrUpdate(e);
}

}[/code]

[code]@Service(“empresaService”)
public class EmpresaServiceImpl implements EmpresaService {

@Autowired
private EmpresaDao empresaDao;

public EmpresaServiceImpl() {
}

public EmpresaServiceImpl(EmpresaDao empresaDao) {
    this.empresaDao = empresaDao;
}

public List<Empresa> findAll() {
    return empresaDao.findAll();
}

public void grava(Empresa e) {
    empresaDao.grava(e);
}

}[/code]

[code]@ManagedBean(name = “empresaController”)
@ViewScoped
public class EmpresaController {

private Empresa empresa = new Empresa();
private List<Empresa> empresaList = new ArrayList<Empresa>();
@ManagedProperty("#{empresaService}")
private EmpresaService empresaService;

public EmpresaController() {
    atualizarTela();
}

/**
 * Limpa os campos input e atualiza a lista de usuarios cadastrados
 */
private void atualizarTela() {
    empresa = new Empresa();
    empresaList = empresaService.findAll();
}

/**
 * Grava novo registro ou atualiza um registro
 */
public void gravar() {
    empresaService.grava(getEmpresa());
    atualizarTela();
}

public void excluir() {

// service.excluir(getEmpresa());
atualizarTela();
}

public List<Empresa> getListaEmpresa() {
    return empresaList;
}

public void setListaEmpresa(List<Empresa> empresaList) {
    this.empresaList = empresaList;
}

public Empresa getEmpresa() {
    return empresa;
}

public void setEmpresa(Empresa empresa) {
    this.empresa = empresa;
}

}[/code]

e o arquivo applicationContext

[code]<beans xmlns=“http://www.springframework.org/schema/beans
xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance
xmlns:context=“http://www.springframework.org/schema/context
xmlns:aop=“http://www.springframework.org/schema/aop
xmlns:tx=“http://www.springframework.org/schema/tx
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/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.0.xsd”>

&lt;context:spring-configured /&gt;

&lt;context:component-scan base-package="mensagerianfe" /&gt;

&lt;!-- Conexão com banco de dados --&gt;
&lt;bean id="dataSource" class="mensagerianfe.config.Conexao" /&gt;
	
&lt;!-- Hibernate --&gt;
&lt;bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"&gt;
    &lt;property name="annotatedClasses"&gt;
        &lt;list&gt;
            &lt;value&gt;mensagerianfe.entity.Empresa&lt;/value&gt;
            &lt;value&gt;mensagerianfe.entity.Usuario&lt;/value&gt;
            &lt;value&gt;mensagerianfe.entity.Autorizacao&lt;/value&gt;
            &lt;value&gt;mensagerianfe.entity.UsuarioAutorizacao&lt;/value&gt;
        &lt;/list&gt;
    &lt;/property&gt;
    &lt;property name="hibernateProperties"&gt;
        &lt;props&gt;
            &lt;prop key="hibernate.dialect"&gt;org.hibernate.dialect.MySQLInnoDBDialect&lt;/prop&gt;
            &lt;prop key="hibernate.show_sql"&gt;true&lt;/prop&gt;  
            &lt;prop key="hibernate.hbm2ddl.auto"&gt;update&lt;/prop&gt; 			
        &lt;/props&gt;
    &lt;/property&gt;
    &lt;property name="dataSource" ref="dataSource" /&gt;
&lt;/bean&gt;

&lt;!-- Injeta uma sessão do hibernate --&gt;
&lt;bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate"&gt;
    &lt;property name="sessionFactory" ref="sessionFactory" /&gt;
&lt;/bean&gt; 

</beans>[/code]

mas ao executar me da a seguinte exception

javax.servlet.ServletException: Não foi possível criar o bean gerenciado empresaController. Os seguintes problemas foram encontrados: - A propriedade empresaService para o bean gerenciado empresaController não existe. javax.faces.webapp.FacesServlet.service(FacesServlet.java:325) org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393) org.apache.jasper.runtime.PageContextImpl.doForward(PageContextImpl.java:745) org.apache.jasper.runtime.PageContextImpl.forward(PageContextImpl.java:716) org.apache.jsp.index_jsp._jspService(index_jsp.java:58) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) javax.servlet.http.HttpServlet.service(HttpServlet.java:722) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:419) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:391) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334) javax.servlet.http.HttpServlet.service(HttpServlet.java:722) org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)

Ja tentei de varias formas mas nada de funcionar com Spring 3 alguem poderia me ajudar ou dar sugestoes de uma melhor implementação?

Obrigado.

Estou usando a mesma configuração que vc (Spring 3 + JSF2 sem o Spring MVC ou o spring WebFlow) e estou passando pelo mesmo problema.

Consegui fazer “funcionar” utilizando a annotation @Component ao invéz das especializações @Repository, @Service e @Controller mas eu ainda não tenho certeza de que isso não vai causar problemas maiores no futuro - fora o fato de ainda não ter entendido exatamento o quê está acontecendo …

Outra annotation que tive de susbtituir é a @ManagedBean do JSF, usei a @Component do spring e funcionou, a referência #{beanName} foi resolvida sem problemas dentro da página xhtml.

Eu ainda tentei usar a tradução de exceção do spring mas sem a annotation @Repository não funcionou - óbviamente visto que o spring não faz idéia de onde é que ele terá de criar o proxy maldito pra interceptar as exceções …

Alguma idéia? Qualquer ajuda será bem vinda …

Estou prestes a desistir de tudo e partir pra outro framework. Estou com esse mesmo problema faz um tempão e não consigo sair do canto. O meu está bem simples, tenho um @ManagedBean e quero injetar um Service, anotado com @Component, mas dá o mesmo erro. Desisto.

Dê uma lida nesse tutorial, creio que vai ajudá-lo.

Flw! :thumbup:

Consegui resolver o problema fazendo o seguinte…

[code]@ManagedBean
@RequestScoped
public class NFeController {

@ManagedProperty(value="#{nFeService}")
private NFeService nFeService;

public void setnFeService(NFeService nFeService) {
    this.nFeService = nFeService;
}

private List&lt;NFe&gt; nfeList;

public List&lt;NFe&gt; getNfeList() {
    nfeList = nFeService.getByEmpresa(1);
    return nfeList;
}

}[/code]

colocando o set para o service o Spring injeta por EL, agora estou achando estranho no primefaces quando tento usar o sortBy ou FilterBy no Datatable e dispara inumeros selects todos iguais, e nao funciona, seria algum problema referente a configuracao de transações do Spring com JSF2

Segue a pagina xhtml

[code]<p:dataTable var=“nfe” value="#{nFeController.nfeList}"
emptyMessage=“Nenhuma nota encontrada!” paginator=“true” rows=“10”>

                    &lt;p:column filterBy="#{nfe.status}" headerText="Status" 
                              filterMatchMode="startsWith"&gt;
                        &lt;h:outputText value="#{nfe.status}"/&gt;
                    &lt;/p:column&gt;

                    &lt;p:column filterBy="#{nfe.NDoc}" headerText="N.Doc" 
                              filterMatchMode="startsWith"&gt;
                        &lt;h:outputText value="#{nfe.NDoc}"/&gt;
                    &lt;/p:column&gt;

                    &lt;p:column filterBy="#{nfe.dataEmissao}" headerText="Data Emissão" 
                              filterMatchMode="startsWith"&gt;
                        &lt;h:outputText value="#{nfe.dataEmissao}"/&gt;

                    &lt;/p:column&gt;

                    &lt;p:column filterBy="#{nfe.tipoNF}" headerText="E/S" 
                              filterMatchMode="startsWith"&gt;
                        &lt;h:outputText value="#{nfe.tipoNF}"/&gt;
                    &lt;/p:column&gt;

                    &lt;p:column filterBy="#{nfe.valor}" headerText="Valor Documento" 
                              filterMatchMode="startsWith"&gt;
                        &lt;h:outputText value="#{nfe.valor}"/&gt;
                    &lt;/p:column&gt;

                    &lt;p:column filterBy="#{nfe.destinatario}" headerText="Destinatário" 
                              filterMatchMode="startsWith"&gt;
                        &lt;h:outputText value="#{nfe.destinatario}"/&gt;

                    &lt;/p:column&gt;

                    &lt;p:column filterBy="#{nfe.uf}" headerText="UF" 
                              filterMatchMode="startsWith"&gt;
                        &lt;h:outputText value="#{nfe.uf}"/&gt;
                    &lt;/p:column&gt;

                    &lt;p:column filterBy="#{nfe.dataAprovacao}" headerText="Data Aprovação" 
                              filterMatchMode="startsWith"&gt;
                        &lt;h:outputText value="#{nfe.dataAprovacao}"/&gt;
                    &lt;/p:column&gt;

                &lt;/p:dataTable&gt;[/code]

troque

@ManagedProperty("#{empresaService}")  
private EmpresaService empresaService;  

por

@Autowired  
private EmpresaService empresaService;  

Spring não aceita trabalhar com ViewScoped do JSF 2 por enquanto, tem um cara aqui que diz que implementou, porem eu nunca testei: http://cagataycivici.wordpress.com/2010/02/17/port-jsf-2-0s-viewscope-to-spring-3-0/

[]'s

@WRYEL

O Spring trabalha sim com ViewScoped, mas desde que não seja feito o que você indicou, que é substituir o @ManagedProperty por @Autowired. Fazendo as configurações adequadas, o Spring faz uso da forma que o JSF trabalha, sem grandes interferências. Usando @Autowired não funciona mesmo.

Olhe no link que postei acima, que há mais explicações sobre isso.

Flw! :thumbup:

von.juliano fiz exatamente da maneira que consta no link que vc me mandou…

mas o problema agora esta no sortBy e FilterBy do dataTable do primefaces, quando tento usalo fica correndo um loop de select na aplicação e nao ordena nada nem filtra o que pode ser?

Segue o primeiro nullPointer e depois a cadeia de selects repitidos

28/09/2011 09:58:56 com.sun.faces.context.PartialViewContextImpl processPartial INFO: java.lang.NullPointerException java.lang.NullPointerException at org.primefaces.component.datatable.DataHelper.decodeFilterRequest(DataHelper.java:152) at org.primefaces.component.datatable.DataTableRenderer.decode(DataTableRenderer.java:57) at javax.faces.component.UIComponentBase.decode(UIComponentBase.java:787) at org.primefaces.component.datatable.DataTable.processDecodes(DataTable.java:594) at com.sun.faces.context.PartialViewContextImpl$PhaseAwareVisitCallback.visit(PartialViewContextImpl.java:506) at com.sun.faces.component.visit.PartialVisitContext.invokeVisitCallback(PartialVisitContext.java:183) at javax.faces.component.UIData.visitTree(UIData.java:1411) at javax.faces.component.UIComponent.visitTree(UIComponent.java:1600) at javax.faces.component.UIComponent.visitTree(UIComponent.java:1600) at javax.faces.component.UIComponent.visitTree(UIComponent.java:1600) at javax.faces.component.UIForm.visitTree(UIForm.java:344) at javax.faces.component.UIComponent.visitTree(UIComponent.java:1600) at javax.faces.component.UIComponent.visitTree(UIComponent.java:1600) at com.sun.faces.context.PartialViewContextImpl.processComponents(PartialViewContextImpl.java:376) at com.sun.faces.context.PartialViewContextImpl.processPartial(PartialViewContextImpl.java:252) at javax.faces.context.PartialViewContextWrapper.processPartial(PartialViewContextWrapper.java:183) at javax.faces.component.UIViewRoot.processDecodes(UIViewRoot.java:931) at com.sun.faces.lifecycle.ApplyRequestValuesPhase.execute(ApplyRequestValuesPhase.java:78) at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101) at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:409) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:368) at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:109) at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:97) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:100) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:78) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:35) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:177) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:187) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:79) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:169) at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237) at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167) 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.core.StandardHostValve.invoke(StandardHostValve.java:127) 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:298) at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:864) at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:579) at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1665) at java.lang.Thread.run(Thread.java:619)

Percebi o seguinte quando eu uso o ManagedProperty eu nao consigo chamar o service no construtor, pois este ainda nao é injetado e vai nulo, eu estava passando para o get da minha lista mas a aplicação chama varias vezes o getNFeList isso faz com que seja disparado varios selects e assim nao funciona o sortBy nem FilterBy, o que fazer para fazer funcionar esse Spring com JSF2

Se eu entendi o que você quis dizer, acho que é o seguinte:

public List<NFe> getNfeList() { if(nfeList.isEmpty()) { nfeList = nFeService.getByEmpresa(1); } return nfeList; }

Pensei nisso tambem mas fiz de outra maneira, utilizando o @PostConstruct

@PostConstruct public void init() { setNfeList(nFeService.getByEmpresa(1)); }

funcionou agora o sortBy mas mesmo assim fica disparando selects cada vez que clico no header da coluna para fazer o sortBy isso eh normal?

e quando tento utilizar o filterBy retorna a seguinte exception

28/09/2011 17:51:52 com.sun.faces.context.PartialViewContextImpl processPartial INFO: java.lang.NullPointerException java.lang.NullPointerException at org.primefaces.component.datatable.DataHelper.decodeFilterRequest(DataHelper.java:152) at org.primefaces.component.datatable.DataTableRenderer.decode(DataTableRenderer.java:57) at javax.faces.component.UIComponentBase.decode(UIComponentBase.java:787) at org.primefaces.component.datatable.DataTable.processDecodes(DataTable.java:594) at com.sun.faces.context.PartialViewContextImpl$PhaseAwareVisitCallback.visit(PartialViewContextImpl.java:506) at com.sun.faces.component.visit.PartialVisitContext.invokeVisitCallback(PartialVisitContext.java:183) at javax.faces.component.UIData.visitTree(UIData.java:1411) at javax.faces.component.UIComponent.visitTree(UIComponent.java:1600) at javax.faces.component.UIComponent.visitTree(UIComponent.java:1600) at javax.faces.component.UIComponent.visitTree(UIComponent.java:1600) at javax.faces.component.UIForm.visitTree(UIForm.java:344) at javax.faces.component.UIComponent.visitTree(UIComponent.java:1600) at javax.faces.component.UIComponent.visitTree(UIComponent.java:1600) at com.sun.faces.context.PartialViewContextImpl.processComponents(PartialViewContextImpl.java:376) at com.sun.faces.context.PartialViewContextImpl.processPartial(PartialViewContextImpl.java:252) at javax.faces.context.PartialViewContextWrapper.processPartial(PartialViewContextWrapper.java:183) at javax.faces.context.PartialViewContextWrapper.processPartial(PartialViewContextWrapper.java:183) at javax.faces.component.UIViewRoot.processDecodes(UIViewRoot.java:931) at com.sun.faces.lifecycle.ApplyRequestValuesPhase.execute(ApplyRequestValuesPhase.java:78) at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101) at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:409) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:368) at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:109) at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:97) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:100) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:78) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:35) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:177) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:187) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:79) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:169) at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237) at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167) 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.core.StandardHostValve.invoke(StandardHostValve.java:127) 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:298) at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:864) at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:579) at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1665) at java.lang.Thread.run(Thread.java:619)

@von.juliano: esse modelo que você disse funcionar spring/jsf 2/viewScoped é o Spring controlando os ManagedBeans? se sim, não sabia, vou testar então :smiley:

Na verdade o Spring não cria os Managed Beans, ele deixa essa parte para o próprio JSF e faz uso do seu funcionamento para que os beans sejam injetados sem interferir no fluxo. Se o Spring não interfere, não afeta a forma que o JSF trabalha, então você não perde o uso de nenhum de seus recursos! :smiley:

Blz? Flw! :thumbup:

e referente ao filterby o que pode ser ?

como voce disse @von.juliano trabalhando dessa forma o JSF2 funciona independente entao esse exception esta diretamente ligado apenas ao JSF?

o Spring fica entao responsavel apenas pela parte de modelo da aplicação?

@furacao123,

Sobre os selects, verifique se o método init() anotado com @PostConstructor não está sendo chamado várias vezes. O que costumo fazer, é ter um método listar() que faz a busca e joga os valores na collection, e um getXXX() que retorna a lista, assim o listar é chamado pela ação da página, e para o que o jsf precisar, ele chama o get que pega os valores já carregados.

Quanto ao filterby não sei como te ajudar, conheço pouco do primefaces. :?

Entao na minha classe nFeController ficou assim

[code]@PostConstruct
public void init() {
setNfeList(nFeService.getByEmpresa(1));
}

public List<NFe> getNfeList() {
return nfeList;
}

public void setNfeList(List<NFe> nfeList) {
this.nfeList = nfeList;
}[/code]

pois se eu nao fizer dessa forma eu nao tenho o service injetado pelo Spring

Estou tentando fazer uma navegação num sistema por meio do ajax, mas quando dou update em um componente para mostrar os dados de uma dataTable o mesmo vem vazio, é como se nao disparace o metodo set no controller, o que pode ser?

com o @ViewScoped vai funcionar corretamente?

Estou com o mesmo problema de voces. Fiz varios testes. Passei pelos mesmos problemas. No caso de usar o @Component o ManegedBean passa a ser um Bean Sigleton do Spring e tudo que voce faz numa sessão passa a refletir nas outras sessões do servidor. Eu vou ser obrigado a usar a anotacao de escopo do Spring. Consegui usar sem problemas assim:

import javax.inject.Inject;
import javax.inject.Named;
import org.springframework.context.annotation.Scope;

@Named(value = "categoriaController")
@Scope(value = "session")
public class CategoriaController {
    @Inject
    private CategoriaService categoriaService;
}

O problema disso é que eu nao consigo trabalhar com o escopo de request. So com o de Sessão. O escopo de request ate funciona eu entro nas telas navego nas tabelas. So que quando tento enviar qualquer coisa novamente para o servidor… os parametros estao todos nulos.
Fiz duas implementacaoes de escopo personalizado que entrei na web, para deixar o Spring com ViewScoped
http://cagataycivici.wordpress.com/2010/02/17/port-jsf-2-0s-viewscope-to-spring-3-0/ e http://www.esseconhece.com.br/programacao/java/disponibilizando-viewscope-para-spring/
Em ambos os casos funcionou, pelo log do tomcat ele executa todas as funcoes. So que na tela o que e solicitei nao aparece, como por exemplo o dataModel com o resultado da pesquisa.

Eu pensei em fazer de outra forma, mas nao consegui. Gostaria de saber se alguem responder se dessa forma funciona.
Como eu tenho varias camadas eu queria deixar o spring so ate a camada de servico. No ManegedBean eu nao usaria nada de Spring, apenas JSF 2. Do Service para baixo eu usaria o Spring. So que quando eu fiz isso passou a dar os mesmos erros que os colegas relataram. Todo acesso retorna nullpointerexception. Por algum motivo o Spring nao injeta os objetos se nao existir suas anotacoes nos managed Bean. Mesmo eu mudando o context:component-scan e retirando os listeners de JSF dos arquivos de configuracao.
Alguem tem alguam ideia?

A arquitetura que estou tentando usar agora diante desses problemas eh:
Pagina JSF 2–> ManagedBean – > Service —(Regras de negocio) E desse ponto em diante usando o Spring 3.0.6 -->
–> Daos (JPA2 myEclipse 2.0 ) --> Modelo e banco de dados (MySQL)