Erro JSF, JPA, Spring

Pessoal boa tarde,

Estou iniciando em spring, e tentando implementar um sistema web, utilizando JSF e primefaces, porém estou encontrando muita dificuldade em fazer a integração com spring.

Segue log do erro e as respectivas classes que estou utilizando,

Aparentemente o erro ocorre ao tentar fazer a injeção do bean UsuarioDaoImpl em um outro bean, novoUsuarioBean. Então ocorre o erro javax.el.Exception.

Dez 08, 2012 1:47:44 PM org.apache.catalina.startup.Catalina start
Informações: Server startup in 108208 ms
Dez 08, 2012 1:48:21 PM com.sun.faces.application.view.FaceletViewHandlingStrategy handleRenderException
Grave: Error Rendering View[/content/pages/novousuario/novousuario.xhtml]
com.sun.faces.mgbean.ManagedBeanCreationException: Não é possível definir a propriedade usuarioDaoImpl para o bean gerenciado novoUsuarioBean.
	at com.sun.faces.mgbean.ManagedBeanBuilder$BakedBeanProperty.set(ManagedBeanBuilder.java:615)
	at com.sun.faces.mgbean.ManagedBeanBuilder.buildBean(ManagedBeanBuilder.java:133)
	at com.sun.faces.mgbean.BeanBuilder.build(BeanBuilder.java:104)
	at com.sun.faces.mgbean.BeanManager.createAndPush(BeanManager.java:409)
	at com.sun.faces.mgbean.BeanManager.create(BeanManager.java:269)
	at com.sun.faces.el.ManagedBeanELResolver.resolveBean(ManagedBeanELResolver.java:244)
	at com.sun.faces.el.ManagedBeanELResolver.getValue(ManagedBeanELResolver.java:116)
	at com.sun.faces.el.DemuxCompositeELResolver._getValue(DemuxCompositeELResolver.java:176)
	at com.sun.faces.el.DemuxCompositeELResolver.getValue(DemuxCompositeELResolver.java:203)
	at org.apache.el.parser.AstIdentifier.getValue(AstIdentifier.java:72)
	at org.apache.el.parser.AstValue.getValue(AstValue.java:147)
	at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:189)
	at com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:109)
	at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:194)
	at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:182)
	at javax.faces.component.UIOutput.getValue(UIOutput.java:169)
	at org.primefaces.util.ComponentUtils.getValueToRender(ComponentUtils.java:63)
	at org.primefaces.component.inputtext.InputTextRenderer.encodeMarkup(InputTextRenderer.java:79)
	at org.primefaces.component.inputtext.InputTextRenderer.encodeEnd(InputTextRenderer.java:50)
	at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:875)
	at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:312)
	at com.sun.faces.renderkit.html_basic.GridRenderer.renderRow(GridRenderer.java:185)
	at com.sun.faces.renderkit.html_basic.GridRenderer.encodeChildren(GridRenderer.java:129)
	at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:845)
	at org.primefaces.renderkit.CoreRenderer.renderChild(CoreRenderer.java:55)
	at org.primefaces.renderkit.CoreRenderer.renderChildren(CoreRenderer.java:43)
	at org.primefaces.component.panel.PanelRenderer.encodeContent(PanelRenderer.java:198)
	at org.primefaces.component.panel.PanelRenderer.encodeMarkup(PanelRenderer.java:115)
	at org.primefaces.component.panel.PanelRenderer.encodeEnd(PanelRenderer.java:55)
	at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:875)
	at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1786)
	at javax.faces.render.Renderer.encodeChildren(Renderer.java:168)
	at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:845)
	at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1779)
	at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1782)
	at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:424)
	at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:124)
	at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:121)
	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
	at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:594)
	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.AprEndpoint$SocketProcessor.run(AprEndpoint.java:1805)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
	at java.lang.Thread.run(Thread.java:722)
Caused by: javax.el.ELException: Cannot convert br.com.vnrg.controlefinanceiro.dao.impl.UsuarioDaoImpl@141a8ad of type class $Proxy17 to class br.com.vnrg.controlefinanceiro.dao.impl.UsuarioDaoImpl
	at org.apache.el.lang.ELSupport.coerceToType(ELSupport.java:420)
	at org.apache.el.ExpressionFactoryImpl.coerceToType(ExpressionFactoryImpl.java:47)
	at com.sun.faces.el.ELUtils.coerce(ELUtils.java:536)
	at com.sun.faces.mgbean.BeanBuilder$Expression.evaluate(BeanBuilder.java:592)
	at com.sun.faces.mgbean.ManagedBeanBuilder$BakedBeanProperty.set(ManagedBeanBuilder.java:606)
	... 56 more

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.1.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context-3.1.xsd
        http://www.springframework.org/schema/tx
        http://www.springframework.org/schema/tx/spring-tx-3.1.xsd">

	<!-- Define o pacote onde o Spring vai procurar por beans anotados -->
	<context:component-scan
		base-package="br.com.vnrg.controlefinanceiro" />
	<context:component-scan base-package="br.com.vnrg.controlefinanceiro.dao.impl" />
	<context:component-scan base-package="br.com.vnrg.controlefinanceiro.view.bean" />

	<!-- Configuracao do Banco de Dados -->
	<import resource="classes/spring/dataSource.xml" />
	
	<!-- Configurando EntityManagerFactory -->  
	<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">  
        <property name="persistenceUnitName" value="controlefinanceiroPU"/>
        <property name="dataSource" ref="dataSource" />
        <property name="jpaVendorAdapter">
            <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter" />
        </property>
    </bean>

	<!-- Configurando Transaction JPA -->  
	<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">  
        <property name="entityManagerFactory" ref="entityManagerFactory"/>  
    </bean>  
    
	<tx:annotation-driven />

	<!-- Seta anotaçoes para serem usadas pelo Spring -->
	<context:annotation-config />
	
</beans>

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
	version="3.0">
	<display-name>ControleFinanceiro</display-name>
	<context-param>
	    <param-name>javax.faces.CONFIG_FILES</param-name>
		<param-value>/WEB-INF/faces-managed-beans.xml,/WEB-INF/faces-navigation-config.xml</param-value>
	</context-param>
	<context-param>
		<param-name>javax.faces.PROJECT_STAGE</param-name>
		<param-value>Development</param-value>
	</context-param>
	<!-- Configuracao do Spring -->
	<context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>/WEB-INF/applicationContext.xml</param-value>
	</context-param>
	<listener>
		<listener-class>
			org.springframework.web.context.ContextLoaderListener
		</listener-class>
	</listener>
	 <listener>
		<listener-class>
			org.springframework.web.context.request.RequestContextListener
		</listener-class>
  	</listener>
	<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>*.jsf</url-pattern>
	</servlet-mapping>
	<welcome-file-list>
		<welcome-file>index.jsf</welcome-file>
	</welcome-file-list>
	
</web-app>
UsuarioDaoImpl.java

@Repository("usuarioDaoImpl")
public class UsuarioDaoImpl implements IUsuarioDao {
protected EntityManager entityManager;

	@PersistenceUnit
	public void setEntityManager(EntityManagerFactory emf) {
		this.entityManager = emf.createEntityManager();
	}

......

NovoUsuarioBean .java

@SessionScoped
@ManagedBean(name="novoUsuarioBean")
public class NovoUsuarioBean extends AbstractManagedBean {

	@ManagedProperty(value="#{usuarioDaoImpl}")
//	@Autowired(required=true)
	private UsuarioDaoImpl usuarioDaoImpl;

	public void setUsuarioDaoImpl(UsuarioDaoImpl usuarioDaoImpl) {
		this.usuarioDaoImpl = (UsuarioDaoImpl) usuarioDaoImpl;
	}

....

Ninguém?

Nao sei se isso vai resolver, mas nao deveria estar pegando a interface ao inves da classe concreta?

@ManagedProperty(value="#{usuarioDao}") // @Autowired(required=true) private IUsuarioDao usuarioDao;