Descoberta Automática de Beans utilizando JSF e Spring

E aí pessoal…
Preciso muito da ajuda de vocês para fazer a criação de um projeto utilizando JSF(1.2) e Spring(3.0). Utilizo Netbeans e glassfish; já tentei de todas as formas possíveis para fazer com que os beans sejam descobertos automaticamente e eu não precise registrá-los no faces-config do JSF.
Optei por utilizar esses dois frameworks porque o JSF me dá uma grande facilidade para trabalhar com os view’s e o spring porque me possibilita fazer esta descoberta automática de beans. Sendo assim, posso chamar o bean direto na página view desta forma: #{Controller.nameField}. Até agora, de todas as vezes que tentei, ele me retorna que o “Controller” se encontra nulo.
Só para não perdermos tempo, já tentei utilizar este tutorial: http://www.javasimples.com.br/spring-2/spring-framework-parte-6-injecao-de-dependencia-via-anotacoes mas não deu certo…
Se alguém puder me ajudar…
Desde já agradeço.
Abraços pessoal.

Mostre seu beans.xml, ou applicationContext.xml ou seu faces-config.xml, tudo de xml que voce ta usando por favor…sono ta batendo aqui mas vo tentar te ajudar ‘-’

arquivo context.xml

[code]<?xml version="1.0" encoding="UTF-8"?>

<context:component-scan base-package="controle"/>

<context:annotation-config />
<context:component-scan base-package="controle" />

[/code]

arquivo web.xml do JSF

[code]<?xml version="1.0" encoding="UTF-8"?>


Faces Servlet
javax.faces.webapp.FacesServlet
1


Faces Servlet
/faces/*



30

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/spring/context.xml</param-value>
</context-param>
<welcome-file-list>
    <welcome-file>faces/welcomeJSF.jsp</welcome-file>
</welcome-file-list>
[/code]

arquivo faces-config.xml também do JSF

[code]<?xml version='1.0' encoding='UTF-8'?>

[/code]

são estes…

No seu context.xml, faça um teste deixando somente isto:

<context:component-scan base-package="org.programa.controle" />

Lembrando que nessa tag voce precisa especificar o pacote onde estao os seus beans, tipo, seus beans estao no pacote controle, mas o pacote controle esta dentro de outro pacote ? entao faça a declaracao completa do caminho do mesmo.

Tire o <context:annotation-config />

e o repetido, se voce observar esta repetindo.
<context:component-scan base-package=“controle” />

[quote=rof20004]Tire o <context:annotation-config />

e o repetido, se voce observar esta repetindo.
<context:component-scan base-package=“controle” /> [/quote]

rof20004, o pacote controle está dentro do pacote padrão do projeto “Pacotes de Código Fonte”.
Retirei o <context:annotation-config /> mas não resolveu…

[quote=diegofm300][quote=rof20004]Tire o <context:annotation-config />

e o repetido, se voce observar esta repetindo.
<context:component-scan base-package=“controle” /> [/quote]

rof20004, o pacote controle está dentro do pacote padrão do projeto “Pacotes de Código Fonte”.
Retirei o <context:annotation-config /> mas não resolveu…

Lembrando que dentro do Controlador que chamo na classe view eu uso a annotation controller da seguinte forma:
@Controller(“Controlador”)

Entao mais uma pergunta mano: poste o codigo da sua pagina, especificamente a parte onde voce chama esse bean, e tb poste a mensagem de erro completa:

Antes de postar, pode testar algo ? veja se existem espaços em branco antes e depois dessa declaração #{Controller.nameField}, e tambem mude o Controller.nameField para

#{controller.nameField}, com C minusculo, ja vi muitos problemas desse tipo serem por causa da declaracao, bom, custa nada tentar ne ^^.

[quote=rof20004]Entao mais uma pergunta mano: poste o codigo da sua pagina, especificamente a parte onde voce chama esse bean, e tb poste a mensagem de erro completa:

Antes de postar, pode testar algo ? veja se existem espaços em branco antes e depois dessa declaração #{Controller.nameField}, e tambem mude o Controller.nameField para

#{controller.nameField}, com C minusculo, ja vi muitos problemas desse tipo serem por causa da declaracao, bom, custa nada tentar ne ^^.[/quote]

Cara, verifiquei a questão dos espaços que você citou mas acho que está tudo ok…
segue o código da página onde faço a chamada ao bean:

arquivo welcomeJSF.jsp

[code]<%@page contentType=“text/html” pageEncoding=“UTF-8”%>

<%@taglib prefix=“f” uri=“http://java.sun.com/jsf/core”%>
<%@taglib prefix=“h” uri=“http://java.sun.com/jsf/html”%>

<%–
This file is an entry point for JavaServer Faces application.
–%>
<f:view>
<h:form>
<h:outputText value=“Usuário: “/>
<h:inputText id=“usuario” value=”#{Controle.usuario}”/>
<h:outputText value=“Senha: “/>
<h:inputText id=“senha” value=”#{Controle.senha}”/>
<h:commandButton id=“login” value=“Login” action="#{Controle.login}"/>
</h:form>
</f:view>
[/code]

Erro:

[code]HTTP Status 500 -


type Exception report

message

descriptionThe server encountered an internal error () that prevented it from fulfilling this request.

exception
javax.servlet.ServletException: Target Unreachable, identifier ‘Controle’ resolved to null

root cause
javax.el.PropertyNotFoundException: Target Unreachable, identifier ‘Controle’ resolved to null

note The full stack traces of the exception and its root causes are available in the Sun GlassFish Enterprise Server v2.1.1 logs.


Sun GlassFish Enterprise Server v2.1.1

rof20004 se puder me ajudar mandando dicas por e-mail também… diegofm300@gmail.com

Mais alguém aí tem alguma sugestão para me ajudar ?

Desculpe se estiver falando bobagem mas… se não me engano, descoberta de bean automática só acontece no JSF 2.0, e você está utilizando 1.2… não seria isso?

Eu utilizo essa descoberta automática de beans em outro projeto o JSF 1.2 com Spring 3.0. Caso vc possa me ajudar com a configuração desde o início usando JSF 2.0 também serve…tem problema não…

Eu utilizo essa descoberta automática de beans em outro projeto o JSF 1.2 com Spring 3.0. Caso vc possa me ajudar com a configuração desde o início usando JSF 2.0 também serve…tem problema não…[/quote]

Não tem segredo algum em JSF 2.0:

[code]@ManagedBean(name = “apelidoDoBean”)
@ViewScoped
public class BeanTalTalTal {

}[/code]

E se usa da maneira que você precisa ai mesmo… apenas #{apelidoDoBean}…

Eu utilizo essa descoberta automática de beans em outro projeto o JSF 1.2 com Spring 3.0. Caso vc possa me ajudar com a configuração desde o início usando JSF 2.0 também serve…tem problema não…[/quote]

Não tem segredo algum em JSF 2.0:

[code]@ManagedBean(name = “apelidoDoBean”)
@ViewScoped
public class BeanTalTalTal {

}[/code]

E se usa da maneira que você precisa ai mesmo… apenas #{apelidoDoBean}…[/quote]

Como ficaria os xml’s de configuração ?

Não é necessário alterar nada com relação a isto nos xml’s de configuração… =]

Não é necessário alterar nada com relação a isto nos xml’s de configuração… =][/quote]

Deixar da maneira que coloquei neste post né ?

Sim sim… na vdd quando vc iniciar um novo projeto, marque a opção de criar o web.xml e o faces-config e eles já vem prontos, sem parametros praticamente… ao longo pro projeto, certamente voce precisará incluir converters, listeners e afins… mas inicialmente é soh isto mesmo…

Vou tentar aqui…qualquer dúvida posto aqui novamente.
Valeu por enquanto.

Vou tentar aqui…qualquer dúvida posto aqui novamente.
Valeu por enquanto.[/quote]

Será necessário fazer essa configuração no meu arquivo context.xml do spring?

[code]<?xml version="1.0" encoding="UTF-8"?>

<context:component-scan base-package="controle"/>

<context:annotation-config />
<context:component-scan base-package="controle" />

[/code]