Erro spring

18 respostas
rodrigo.fai

Olá galera…

Estou desenvolvendo um sist. com JSF 2 + JPA + Spring, mais ainda não conheço muito e nunca tinha trabalhado com o Spring!!!

No meu sist. tem um menu de listagem de departamentos, que quando acionado, executa o método “listar()” do Managed Bean DepartamentoMBean!!

Mais quando isso acontece é exibida a seguinte mensagem de erro no console:

GRAVE: java.lang.NullPointerException
javax.faces.el.EvaluationException: java.lang.NullPointerException
	at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:98)
	at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:98)
	at javax.faces.component.UICommand.broadcast(UICommand.java:311)
	at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:781)
	at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1246)
	at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:77)
	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:97)
	at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:114)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:308)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987)
	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:579)
	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:309)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.NullPointerException
	at br.com.ce.mbean.DepartamentoMBean.listar(DepartamentoMBean.java:34)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.apache.el.parser.AstValue.invoke(AstValue.java:262)
	at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:278)
	at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:102)
	at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:84)
	... 24 more
24/04/2012 16:58:36 com.sun.faces.lifecycle.InvokeApplicationPhase execute
AVISO: #{departamentoMBean.listar()}: java.lang.NullPointerException
javax.faces.FacesException: #{departamentoMBean.listar()}: java.lang.NullPointerException
	at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:114)
	at javax.faces.component.UICommand.broadcast(UICommand.java:311)
	at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:781)
	at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1246)
	at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:77)
	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:97)
	at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:114)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:308)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987)
	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:579)
	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:309)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
Caused by: javax.faces.el.EvaluationException: java.lang.NullPointerException
	at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:98)
	at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:98)
	... 23 more
Caused by: java.lang.NullPointerException
	at br.com.ce.mbean.DepartamentoMBean.listar(DepartamentoMBean.java:34)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.apache.el.parser.AstValue.invoke(AstValue.java:262)
	at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:278)
	at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:102)
	at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:84)
	... 24 more
javax.faces.FacesException: #{departamentoMBean.listar()}: java.lang.NullPointerException
	at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:85)
	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:97)
	at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:114)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:308)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987)
	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:579)
	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:309)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
Caused by: javax.faces.FacesException: #{departamentoMBean.listar()}: java.lang.NullPointerException
	at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:114)
	at javax.faces.component.UICommand.broadcast(UICommand.java:311)
	at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:781)
	at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1246)
	at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:77)
	... 19 more
Caused by: javax.faces.el.EvaluationException: java.lang.NullPointerException
	at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:98)
	at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:98)
	... 23 more
Caused by: java.lang.NullPointerException
	at br.com.ce.mbean.DepartamentoMBean.listar(DepartamentoMBean.java:34)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.apache.el.parser.AstValue.invoke(AstValue.java:262)
	at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:278)
	at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:102)
	at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:84)
	... 24 more

O código do DepartamentoMBean é o seguinte:

package br.com.ce.mbean;

import java.util.ArrayList;
import java.util.List;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.SessionScoped;

import br.com.ce.controller.DepartamentoFacade;
import br.com.ce.model.Departamento;

@ManagedBean
@SessionScoped
public class DepartamentoMBean {

	@ManagedProperty("#{departamentoFacade}")
	private DepartamentoFacade departamentoFacade;
	private Departamento departamento = new Departamento();
	private List<Departamento> departamentos = new ArrayList<Departamento>();

	public void salvar()
	{		
		this.departamentoFacade.salvar(this.departamento);
	}

	public void remover()
	{
		this.departamentoFacade.remover(this.departamento);
	}

	public String listar()
	{
		this.departamentos = this.departamentoFacade.listar();

		return "listaDepartamento";
	}

	public Departamento getDepartamento() {
		return this.departamento;
	}

	public void setDepartamento(Departamento departamento) {
		this.departamento = departamento;
	}

	public List<Departamento> getDepartamentos() {
		return this.departamentos;
	}

	public void setDepartamentos(List<Departamento> departamentos) {
		this.departamentos = departamentos;
	}

	public DepartamentoFacade getDepartamentoFacade() {
		return this.departamentoFacade;
	}

	public void setDepartamentoFacade(DepartamentoFacade departamentoFacade) {
		this.departamentoFacade = departamentoFacade;
	}
}

Me parece que o Spring não está injetando o “departamentoFacade” (que é o componente da camada de serviço) no MBean!!!
O código do DepartamentoFacade é o seguinte:

package br.com.ce.controller;

import java.util.ArrayList;
import java.util.Collection;
import java.util.List;

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

import br.com.ce.dao.impl.DepartamentoDao;
import br.com.ce.model.Departamento;

@Service("departamentoFacade")
public class DepartamentoFacade {

	@Autowired
	private DepartamentoDao departamentoDao;

	public DepartamentoFacade() {}

	public void salvar(Departamento departamento)
	{
		this.departamentoDao.insert(departamento);
	}

	public void remover(Departamento departamento)
	{
		try {
			this.departamentoDao.deleteByID(departamento.getCodigo());
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	public List<Departamento> listar()
	{
		Collection<Departamento> departamentos = new ArrayList<Departamento>();
		try {
			departamentos = this.departamentoDao.listAll();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

		return (List<Departamento>) departamentos;
	}

	public void setDepartamentoDao(DepartamentoDao departamentoDao) {
		this.departamentoDao = departamentoDao;
	}
}

Acredito que o Spring tb não injetará o “DepartamentoDao” no “DepartamentoFacade”.
Código DepartamentoDao:

package br.com.ce.dao.impl;

import java.util.Collection;

import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

import org.hibernate.Session;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;

import br.com.ce.model.Departamento;

@Repository("departamentoDao")
@Transactional
public class DepartamentoDao {

	@PersistenceContext
	private EntityManager entityManager;

	public DepartamentoDao() {}

	public void insert(Departamento departamento) {

		try {
			Object id = departamento.getCodigo();
			if( id != null ){
				this.entityManager.merge(departamento);
			}
			else{
				this.entityManager.persist(departamento);
				this.entityManager.flush();
			} 
		}
		catch (Exception e) {
			e.printStackTrace();
		}
	}

	public void delete(Departamento departamento) {
		this.entityManager.remove(departamento);
	}

	public void deleteByID(Long entityID) {
		this.delete(this.selectByID(entityID));
	}

	@Transactional(propagation=Propagation.SUPPORTS, readOnly=true)
	public Collection<Departamento> listAll() { 
		return this.hqlQuery("from " + Departamento.class).list();
	}

	@Transactional(propagation=Propagation.SUPPORTS, readOnly=true)
	public Departamento selectByID(Long entityID) {
		return this.entityManager.find(Departamento.class, entityID);
	}

	public org.hibernate.Query hqlQuery(String commandHQL) {
		return this.getSession().createQuery((commandHQL == null ? "" : commandHQL)).setCacheable(true);
	}

	public Session getSession()  {
		return ((Session) this.entityManager.getDelegate());
	}

	public void setEntityManager(EntityManager entityManager) {
		this.entityManager = entityManager;
	}
}

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:context="http://www.springframework.org/schema/context" 
		 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/context 
		                     http://www.springframework.org/schema/context/spring-context-3.0.xsd 
		                     http://www.springframework.org/schema/tx 
		                     http://www.springframework.org/schema/tx/spring-tx-3.0.xsd">
  <!--  Seta anotaçoes para serem usadas pelo Spring --> 
  <context:annotation-config /> 
  <!--  Define o pacote onde o Spring vai procurar por beans anotados --> 
  <context:component-scan base-package="br.com.ce.controller,br.com.ce.dao,br.com.ce.dao.impl" />
  <!--  define que as transaçoes irao ser anotadas --> 
  <tx:annotation-driven transaction-manager="transactionManager"/> 

	<bean id="equipamentoFacade" class="br.com.ce.controller.EquipamentoFacade">
		<property name="equipamentoDao" ref="equipamentoDao" />
	</bean>

	<bean id="departamentoFacade" class="br.com.ce.controller.DepartamentoFacade">
		<property name="departamentoDao" ref="departamentoDao" />
	</bean>
	
	<bean id="funcionarioFacade" class="br.com.ce.controller.FuncionarioFacade">
		<property name="funcionarioDao" ref="funcionarioDao" />
	</bean>
	
	<bean id="equipamentoDao" scope="prototype" class="br.com.ce.dao.impl.EquipamentoDao" />
	<bean id="departamentoDao" scope="prototype" class="br.com.ce.dao.impl.DepartamentoDao" />
	<bean id="funcionarioDao" scope="prototype" class="br.com.ce.dao.impl.FuncionarioDao" />

  <!--  Configuracao do Banco de Dados --> 
  <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
     <property name="driverClassName"        value="org.postgresql.Driver" />
     <property name="url"                    value="jdbc:postgresql://linux4.faespsenar.com.br:5432/pg_ce" />
     <property name="username"               value="faespsenar" />
     <property name="password"               value="!faespsenar@" />
  </bean>
  
  <!--  Configuracao do Hibernate --> 
  <bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
  	<property name="persistenceUnitName" value="ce" /> 
	<property name="dataSource" ref="dataSource" /> 
	<property name="jpaVendorAdapter">
	 	<bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
	  		<property name="databasePlatform" value="org.hibernate.dialect.PostgreSQLDialect" /> 
	  		<property name="showSql" value="true" /> 
	  	</bean>
	</property>
  </bean>
  
  <!--  Configuracao do gerente de transacoes do Spring --> 
  <bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
	<property name="entityManagerFactory" ref="entityManagerFactory" /> 
  </bean>
</beans>

Alguém sabe me dizer oq estou fazendo de errado??? Obrigado.

18 Respostas

Rodrigo_Sasaki

não lembro ao certo…

mas o Spring só injeta em Interfaces, né?

o seu Facade deveria ser uma interface, e não uma classe concreta,

e aí você deveria ter uma classe concreta que implementa seu Facade, e deixar o xml assim

<bean id="departamentoFacade" class="br.com.ce.controller.DepartamentoProvider">  
    <property name="departamentoDao" ref="departamentoDao" />  
</bean>

pelo menos era assim que eu fazia hehehe

romarcio

Pelo que vi, faltou você anotar a classe DepartamentoMBean como um Bean do Spring. Coloca lá uma anotação @Service ou @Component.

rodrigo.fai

A classe DepartamentoMBean está com a anotação @ManagedBean porque é um bean do JSF!!! Estou tentando configurar o Spring para fazer o controle de transações a princípio…

rodrigo.fai

digaoneves:
não lembro ao certo…

mas o Spring só injeta em Interfaces, né?

o seu Facade deveria ser uma interface, e não uma classe concreta,

e aí você deveria ter uma classe concreta que implementa seu Facade, e deixar o xml assim

<bean id="departamentoFacade" class="br.com.ce.controller.DepartamentoProvider">  
    <property name="departamentoDao" ref="departamentoDao" />  
</bean>

pelo menos era assim que eu fazia hehehe

Já peguei vários exemplos que não utilizaram interface! Acretido que não seja esse o problema…

Ao subir o serviço do TOMCAT, foi exibida uma mensagem apontando a falta de interfaces… resolvi esse problema copiando uma lib para o meu classpath!!!

gabrielfrios

Deixe o Spring gerenciar seu MB com o anotação @Component

Se não me engano para integração do JSF com o Spring vc deve configurar seu context com:

<application> 
   <el-resolver> 
        org.springframework.web.jsf.el.SpringBeanFacesELResolver 
   </el-resolver> 
</application>
rodrigo.fai

gabrielfrios:
Deixe o Spring gerenciar seu MB com o anotação @Component

Se não me engano para integração do JSF com o Spring vc deve configurar seu context com:

<application> 
   <el-resolver> 
        org.springframework.web.jsf.el.SpringBeanFacesELResolver 
   </el-resolver> 
</application>

sim… essa configuração já foi feita no arquivo faces-config.xml!
Gostaria que o JSF gerenciasse meus MBeans e não o Spring!!!

gabrielfrios

Nunca usei os dois para injeção, sempre uso o Spring. Mas pq não usar o Spring?

rodrigo.fai

Gostaria que o Spring gerenciasse somente meus objetos de negócio, objetos de acesso a dados e para realizar o controle transacional da aplicação!!!
O JSF por sua vez ficaria responsável por controlar minha aplicação, ou seja, recebe as requisições da camada de visão para execução de alguma operação e delega esta execução á classe de negócio responsável…

gabrielfrios

Então manolo, eu acho que seria um tiro no pé usar dois frameworks para a mesma finalidade, não vejo o pq usar os dois.

rodrigo.fai

Não estou usando dois frameworks para a mesma finalidade!!! Acabei de explicar que cada um têm suas responsabilidades… só não estou conseguindo fazer com que trabalhem juntos!!!

gabrielfrios

Você não está usando o DI do Spring e o CDI do JSF no mesmo projeto?

rodrigo.fai

Estou utilizando os MBeans do JSF para armazenar o estado das páginas web e fazer a chamada dos métodos de negócio da aplicação. Os métodos que armazenão minha lógica de negócio serão gerenciados pelo Spring!!!
Minha dificuldade é a injeção destes meus ojetos de négocio e acesso a dados gerenciados pelo Spring… entendeu??? O JSF só vai controlar a aplicação!!!

gabrielfrios

Manolo, não precisa ficar bravo. Eu te entendi. Só estou mostrando minha opinião de usar dois tipos de injeção de dependência, acho desnecessário.
Desculpe não poder te ajudar nesse caso, pq nunca usei os dois para DI.

rodrigo.fai

gabrielfrios:
Manolo, não precisa ficar bravo. Eu te entendi. Só estou mostrando minha opinião de usar dois tipos de injeção de dependência, acho desnecessário.
Desculpe não poder te ajudar nesse caso, pq nunca usei os dois para DI.

Estou bravo não cara… deboa!!!
É que eu li um artigo na revista JavaMagazine que explica esta arquitetura para projetos web. O artigo mostra a integração do JSF 2, Spring e JPA.
No artigo é utilizado o Maven também, mais não estou usando no meu projeto! Talvez seja esse o problema… por que no artigo fala que essa ferramenta(Maven) facilita a integração destes frameworks!!!
Vou usar o Maven para ver se resolve meu problema!!!

Muito obrigado cara!!!

gabrielfrios

Acho que o Maven não vai resolver o seu problema, pois ele vai integrar frameworks no seu projeto, não entre eles

Maven resumidamente é uma ferramenta que vai automatizar o seu projeto.

Aqui tem um artigo sobre ele:
http://www.guj.com.br/java.tutorial.artigo.185.1.guj

romarcio

gabrielfrios:
Acho que o Maven não vai resolver o seu problema, pois ele vai integrar frameworks no seu projeto, não entre eles

Maven resumidamente é uma ferramenta que vai automatizar o seu projeto.

Aqui tem um artigo sobre ele:
http://www.guj.com.br/java.tutorial.artigo.185.1.guj

Concordo!

rodrigo.fai, não perca mais tempo e coloca seu bean para ser controlado pelo Spring. Senão não vai funcionar, ou então, não coloca o Spring para controlar a injeção de dependência dos outros beans.

rodrigo.fai

gabrielfrios:
Acho que o Maven não vai resolver o seu problema, pois ele vai integrar frameworks no seu projeto, não entre eles

Maven resumidamente é uma ferramenta que vai automatizar o seu projeto.

Aqui tem um artigo sobre ele:
http://www.guj.com.br/java.tutorial.artigo.185.1.guj

CONSEGUI!!!

É o seguinte… antes de integrar o Spring ao meu projeto, eu tinha definido meus MBeans do JSF no arquivo faces-config.xml através das tags . Não é mais necessário estas definições!!!
Para usar os beans do Spring nos MBeans do JSF basta adicionar a EL no arquivo “faces-config.xml”:

<!-- Integração do JSF/Spring -->
 <application>
 	<el-resolver>org.springframework.web.jsf.el.SpringBeanFacesELResolver</el-resolver>
 </application>

… e definir meus MBeans através da anotação @ManagedBean(name=“departamentoMBean”)!!!

Resolvi o problema retirando as definições dos MBeans no arquivo faces-config.xml!!!

rodrigo.fai

romarcio:
gabrielfrios:
Acho que o Maven não vai resolver o seu problema, pois ele vai integrar frameworks no seu projeto, não entre eles

Maven resumidamente é uma ferramenta que vai automatizar o seu projeto.

Aqui tem um artigo sobre ele:
http://www.guj.com.br/java.tutorial.artigo.185.1.guj

Concordo!

rodrigo.fai, não perca mais tempo e coloca seu bean para ser controlado pelo Spring. Senão não vai funcionar, ou então, não coloca o Spring para controlar a injeção de dependência dos outros beans.

Já resolvi o problema… muito obrigado!!!

Criado 24 de abril de 2012
Ultima resposta 25 de abr. de 2012
Respostas 18
Participantes 4