Injection of resource fields failed - Spring

1 resposta
V

Estou estudando o spring 2.5.6 e tentando rodar a aplicação abaixo. O seguinte problema está ocorrendo:
This the problem:
javax.servlet.ServletException: Error creating bean with name ‘usuarioController’: Injection of resource fields failed; nested exception is org.springframework.beans.factory.BeanNotOfRequiredTypeException: Bean named ‘usuarioDao’ must be of type [br.jus.jfrj.sigaFrancop.daoImpJpa.UsuarioDaoCrudImpJpa], but was actually of type [$Proxy73]
javax.faces.webapp.FacesServlet.service(FacesServlet.java:256)

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

&lt;bean id="entityManagerFactory"
	class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"&gt;
	&lt;property name="dataSource" ref="myDataSource" /&gt;
	&lt;property name="jpaVendorAdapter"&gt;
		&lt;bean
			class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter"&gt;
			&lt;property name="showSql" value="true" /&gt;
			&lt;property name="generateDdl" value="true" /&gt;
			&lt;property name="database" value="ORACLE" /&gt;
		&lt;/bean&gt;
	&lt;/property&gt;

	&lt;property name="jpaProperties"&gt;
		&lt;props&gt;
			&lt;prop key="hibernate.dialect"&gt;
				org.hibernate.dialect.Oracle9iDialect
			&lt;/prop&gt;
		&lt;/props&gt;
	&lt;/property&gt;

	&lt;!-- Modo Lazy / permite instrumentação de classe 
		&lt;property name="loadTimeWeaver"&gt;
		&lt;bean class="org.springframework.instrument.classloading.SimpleLoadTimeWeaver"&gt;&lt;/bean&gt;
		&lt;/property&gt;
	--&gt;
&lt;/bean&gt;

&lt;bean id="jpaDialect"
	class="org.springframework.orm.jpa.vendor.HibernateJpaDialect"&gt;
&lt;/bean&gt;

&lt;!-- Configura fonte de dados em pool utilizando dbcp--&gt;
&lt;bean id="myDataSource"
	class="org.apache.commons.dbcp.BasicDataSource"
	destroy-method="close"&gt;
	&lt;property name="driverClassName"
		value="oracle.jdbc.OracleDriver" /&gt;
	&lt;property name="url" value="jdbc:oracle:thin:@mclaren:1521:mcl" /&gt;
	&lt;property name="username" value="francopdes" /&gt;
	&lt;property name="password" value="francopdes" /&gt;
	&lt;property name="initialSize" value="5"&gt;&lt;/property&gt;
&lt;/bean&gt;

&lt;tx:annotation-driven transaction-manager="transactionManager" /&gt;

&lt;bean id="transactionManager"
	class="org.springframework.orm.jpa.JpaTransactionManager"&gt;
	&lt;property name="entityManagerFactory"
		ref="entityManagerFactory" /&gt;
	&lt;property name="jpaDialect" ref="jpaDialect"&gt;&lt;/property&gt;
&lt;/bean&gt;

&lt;context:annotation-config /&gt;

&lt;context:component-scan
	base-package="br.jus.jfrj.sigaFrancop.controller" /&gt;

&lt;bean 
class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor" /&gt;
	
&lt;bean id="usuarioDao"
class="br.jus.jfrj.sigaFrancop.daoImpJpa.UsuarioDaoCrudImpJpa" &gt;
&lt;/bean&gt;

</beans>

Meu web.xml :

<?xml version=“1.0” encoding=“UTF-8”?>
<web-app id=“WebApp_ID” version="2.5"
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-app_2_5.xsd”>

&lt;display-name&gt;SigaFrancop&lt;/display-name&gt;

&lt;context-param&gt;
	&lt;param-name&gt;javax.faces.DEFAULT_SUFFIX&lt;/param-name&gt;
	&lt;param-value&gt;.xhtml&lt;/param-value&gt;
&lt;/context-param&gt;

&lt;listener&gt;
	&lt;listener-class&gt;
		org.springframework.web.context.ContextLoaderListener
	&lt;/listener-class&gt;
&lt;/listener&gt;
 

&lt;!-- Ativa os escopos web para os beans no Spring --&gt;
&lt;listener&gt;
	&lt;listener-class&gt;
		org.springframework.web.context.request.RequestContextListener
	&lt;/listener-class&gt;
&lt;/listener&gt;

&lt;filter&gt;
	&lt;filter-name&gt;openEntityManager&lt;/filter-name&gt;
	&lt;filter-class&gt;
		org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter
	&lt;/filter-class&gt;
&lt;/filter&gt;
&lt;filter-mapping&gt;
	&lt;filter-name&gt;openEntityManager&lt;/filter-name&gt;
	&lt;url-pattern&gt;/*&lt;/url-pattern&gt;
&lt;/filter-mapping&gt;

&lt;context-param&gt;
	&lt;param-name&gt;facelets.DEVELOPMENT&lt;/param-name&gt;
	&lt;param-value&gt;true&lt;/param-value&gt;
&lt;/context-param&gt;

&lt;context-param&gt;
	&lt;param-name&gt;com.sun.faces.validateXml&lt;/param-name&gt;
	&lt;param-value&gt;true&lt;/param-value&gt;
&lt;/context-param&gt;

&lt;context-param&gt;
	&lt;param-name&gt;com.sun.faces.verifyObjects&lt;/param-name&gt;
	&lt;param-value&gt;true&lt;/param-value&gt;
&lt;/context-param&gt;

&lt;context-param&gt;
	&lt;param-name&gt;javax.faces.STATE_SAVING_METHOD&lt;/param-name&gt;
	&lt;param-value&gt;server&lt;/param-value&gt;
&lt;/context-param&gt;


&lt;!-- Define o skin para o Richfaces --&gt;
&lt;context-param&gt;
	&lt;param-name&gt;org.richfaces.SKIN&lt;/param-name&gt;
	&lt;param-value&gt;emeraldTown&lt;/param-value&gt;
&lt;/context-param&gt;


&lt;context-param&gt;
	&lt;param-name&gt;org.ajax4jsf.VIEW_HANDLERS&lt;/param-name&gt;
	&lt;param-value&gt;com.sun.facelets.FaceletViewHandler&lt;/param-value&gt;
&lt;/context-param&gt;

&lt;filter&gt;
	&lt;display-name&gt;RichFaces Filter&lt;/display-name&gt;
	&lt;filter-name&gt;richfaces&lt;/filter-name&gt;
	&lt;filter-class&gt;org.ajax4jsf.Filter&lt;/filter-class&gt;
&lt;/filter&gt;

&lt;filter-mapping&gt;
	&lt;filter-name&gt;richfaces&lt;/filter-name&gt;
	&lt;servlet-name&gt;Faces Servlet&lt;/servlet-name&gt;
	&lt;dispatcher&gt;REQUEST&lt;/dispatcher&gt;
	&lt;dispatcher&gt;FORWARD&lt;/dispatcher&gt;
	&lt;dispatcher&gt;INCLUDE&lt;/dispatcher&gt;
&lt;/filter-mapping&gt;

&lt;servlet&gt;
	&lt;servlet-name&gt;Faces Servlet&lt;/servlet-name&gt;
	&lt;servlet-class&gt;javax.faces.webapp.FacesServlet&lt;/servlet-class&gt;
	&lt;load-on-startup&gt;1&lt;/load-on-startup&gt;
&lt;/servlet&gt;

&lt;servlet-mapping&gt;
	&lt;servlet-name&gt;Faces Servlet&lt;/servlet-name&gt;
	&lt;url-pattern&gt;*.jsf&lt;/url-pattern&gt;
&lt;/servlet-mapping&gt;

&lt;welcome-file-list&gt;
	&lt;welcome-file&gt;index.html&lt;/welcome-file&gt;
&lt;/welcome-file-list&gt;

&lt;security-constraint&gt;

	&lt;display-name&gt;
		Bloqueia o browser da acessar arquivos xhtml
	&lt;/display-name&gt;
	&lt;web-resource-collection&gt;
		&lt;web-resource-name&gt;xhtml files&lt;/web-resource-name&gt;
		&lt;url-pattern&gt;*.xhtml&lt;/url-pattern&gt;
	&lt;/web-resource-collection&gt;

&lt;auth-constraint /&gt;
&lt;/security-constraint&gt;

&lt;login-config&gt;
	&lt;auth-method&gt;BASIC&lt;/auth-method&gt;
&lt;/login-config&gt;

</web-app>

Meu faces-config.xml

<?xml version=“1.0” encoding=“UTF-8”?>
<faces-config version=“1.2” xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xi="http://www.w3.org/2001/XInclude"
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_1_2.xsd”>

&lt;application&gt;

Spring com JSF -->
<el-resolver>
org.springframework.web.jsf.el.SpringBeanFacesELResolver
</el-resolver>

&lt;/application&gt;

&lt;managed-bean&gt;
	&lt;managed-bean-name&gt;usuarioController&lt;/managed-bean-name&gt;
	&lt;managed-bean-class&gt;
		br.jus.jfrj.sigaFrancop.controller.UsuarioController
	&lt;/managed-bean-class&gt;
	&lt;managed-bean-scope&gt;session&lt;/managed-bean-scope&gt;
&lt;/managed-bean&gt;

          .........	

&lt;/faces-config&gt;

Minha classe UsuarioController

package br.jus.jfrj.sigaFrancop.controller;

import javax.annotation.Resource;

import javax.faces.model.DataModel;

import javax.faces.model.ListDataModel;

import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;

import br.jus.jfrj.sestm.dao.DaoException;

import br.jus.jfrj.sigaFrancop.daoImpJpa.UsuarioDaoCrudImpJpa;

import br.jus.jfrj.sigaFrancop.model.Usuario;

@Controller(usuarioController)

@Scope(session)

public class UsuarioController {
private Usuario usuario;
private DataModel model;

@Resource
private UsuarioDaoCrudImpJpa usuarioDao;

public UsuarioController() {
}

public UsuarioDaoCrudImpJpa getUsuarioDao() {
	return usuarioDao;
}

public void setUsuarioDao(UsuarioDaoCrudImpJpa usuarioDao) {
	this.usuarioDao = usuarioDao;
}

public Usuario getUsuario() {
	return usuario;
}

public void setUsuario(Usuario usuario) {
	this.usuario = usuario;
}

public DataModel getModel() {
	return model;
}

public void setModel(DataModel model) {
	this.model = model;
}

public String novoUsuario() {
	this.usuario = new Usuario();
	return "formUsuario";
}

}

Na página eu clico no botão (<h:commandButton action="#{usuarioController.novoUsuario}" value=“New Usuario” />) e neste problema ocorre o erro.
Desculpe-me pelo tamanho da mensagem, mas estou realmente precisando de ajuda.
Obrigado.

1 Resposta

J

Cara use as tag de “Code” para mostrar seus códigos, assim fica mais facil de entender, ai sim alguém da comunidade possa te ajudar.

Muitas vezes desanima por ser muitas linhas de codigos…

Criado 10 de junho de 2009
Ultima resposta 2 de jul. de 2009
Respostas 1
Participantes 2