DI Spring 3 + JSF 2  XML
Índice dos Fóruns » Desenvolvimento Web
Autor Mensagem
furacao123
GUJ Ranger
[Avatar]

Membro desde: 24/01/2008 22:05:47
Mensagens: 794
Offline

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







e o arquivo applicationContext


mas ao executar me da a seguinte exception


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.

Q8200 | Intel DG35EC | 4GB Kingston 800 |HD Seagate 250 GB SATA | HD Seagate 160 GB SATA | Monitor LG 22'' | Fonte AKASA 350W | GeForce 9600 GT
[Email] [Yahoo!] [MSN]
agodinhost
Virtual Machine Man
[Avatar]

Membro desde: 28/03/2006 21:19:16
Mensagens: 590
Localização: RJ, Tijuca
Offline

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 ...

"The difference between theory and practice is that, in theory, there is no difference between theory and practice".
[WWW] [MSN]
nosbor84
Thread.start()

Membro desde: 03/08/2006 18:27:50
Mensagens: 47
Localização: Fortaleza
Offline

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.

Analista Java
"O Filho do Homem chegará na hora, em que vocês não estiverem esperando"
[WWW] [Yahoo!] aim icon [MSN] [ICQ]
von.juliano
GUJ Master
[Avatar]

Membro desde: 15/01/2007 13:31:32
Mensagens: 1266
Offline

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

Flw!

É difícil manter-se religioso quando algumas pessoas simplesmente não são carbonizadas por raios!

Desenvolvendo software de forma simples! - http://vonjuliano.wordpress.com/
[Email] [WWW]
furacao123
GUJ Ranger
[Avatar]

Membro desde: 24/01/2008 22:05:47
Mensagens: 794
Offline

Consegui resolver o problema fazendo o seguinte...



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


Q8200 | Intel DG35EC | 4GB Kingston 800 |HD Seagate 250 GB SATA | HD Seagate 160 GB SATA | Monitor LG 22'' | Fonte AKASA 350W | GeForce 9600 GT
[Email] [Yahoo!] [MSN]
WRYEL
JavaEvangelist
[Avatar]

Membro desde: 03/03/2008 21:27:20
Mensagens: 447
Localização: São Paulo
Offline

troque



por



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

/**
* http://www.wryel.com.br
* SCJA / SCJP / OCWCD
*/
[WWW] [MSN]
von.juliano
GUJ Master
[Avatar]

Membro desde: 15/01/2007 13:31:32
Mensagens: 1266
Offline

@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!

É difícil manter-se religioso quando algumas pessoas simplesmente não são carbonizadas por raios!

Desenvolvendo software de forma simples! - http://vonjuliano.wordpress.com/
[Email] [WWW]
furacao123
GUJ Ranger
[Avatar]

Membro desde: 24/01/2008 22:05:47
Mensagens: 794
Offline

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

This message was edited 1 time. Last update was at 28/09/2011 08:23:24


Q8200 | Intel DG35EC | 4GB Kingston 800 |HD Seagate 250 GB SATA | HD Seagate 160 GB SATA | Monitor LG 22'' | Fonte AKASA 350W | GeForce 9600 GT
[Email] [Yahoo!] [MSN]
furacao123
GUJ Ranger
[Avatar]

Membro desde: 24/01/2008 22:05:47
Mensagens: 794
Offline

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

Q8200 | Intel DG35EC | 4GB Kingston 800 |HD Seagate 250 GB SATA | HD Seagate 160 GB SATA | Monitor LG 22'' | Fonte AKASA 350W | GeForce 9600 GT
[Email] [Yahoo!] [MSN]
von.juliano
GUJ Master
[Avatar]

Membro desde: 15/01/2007 13:31:32
Mensagens: 1266
Offline

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

É difícil manter-se religioso quando algumas pessoas simplesmente não são carbonizadas por raios!

Desenvolvendo software de forma simples! - http://vonjuliano.wordpress.com/
[Email] [WWW]
furacao123
GUJ Ranger
[Avatar]

Membro desde: 24/01/2008 22:05:47
Mensagens: 794
Offline

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



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


This message was edited 1 time. Last update was at 28/09/2011 16:16:10


Q8200 | Intel DG35EC | 4GB Kingston 800 |HD Seagate 250 GB SATA | HD Seagate 160 GB SATA | Monitor LG 22'' | Fonte AKASA 350W | GeForce 9600 GT
[Email] [Yahoo!] [MSN]
WRYEL
JavaEvangelist
[Avatar]

Membro desde: 03/03/2008 21:27:20
Mensagens: 447
Localização: São Paulo
Offline

@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

/**
* http://www.wryel.com.br
* SCJA / SCJP / OCWCD
*/
[WWW] [MSN]
von.juliano
GUJ Master
[Avatar]

Membro desde: 15/01/2007 13:31:32
Mensagens: 1266
Offline

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!

Blz? Flw!

É difícil manter-se religioso quando algumas pessoas simplesmente não são carbonizadas por raios!

Desenvolvendo software de forma simples! - http://vonjuliano.wordpress.com/
[Email] [WWW]
furacao123
GUJ Ranger
[Avatar]

Membro desde: 24/01/2008 22:05:47
Mensagens: 794
Offline

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?

Q8200 | Intel DG35EC | 4GB Kingston 800 |HD Seagate 250 GB SATA | HD Seagate 160 GB SATA | Monitor LG 22'' | Fonte AKASA 350W | GeForce 9600 GT
[Email] [Yahoo!] [MSN]
von.juliano
GUJ Master
[Avatar]

Membro desde: 15/01/2007 13:31:32
Mensagens: 1266
Offline

@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.

É difícil manter-se religioso quando algumas pessoas simplesmente não são carbonizadas por raios!

Desenvolvendo software de forma simples! - http://vonjuliano.wordpress.com/
[Email] [WWW]
 
Índice dos Fóruns » Desenvolvimento Web
Ir para:   
Powered by JForum 2.1.8 © JForum Team