vRaptor + Autowired  XML
Índice dos Fóruns » Frameworks e Bibliotecas brasileiros
Autor Mensagem
wood
JavaChild

Membro desde: 01/06/2006 12:38:40
Mensagens: 121
Offline

Nos exemplos, o que eu tenho visto é um @Component dando um @AutoWired em beans do Spring.

É possível fazer o contrário? A partir de um bean do Spring dar um @AutoWired em @Component's do VRaptor?

Comigo está acontecendo este erro


Em outro Post, vi que o Lucas informou que não é possível que tenha o listener RequestContextListener no web.xml pois o VRaptor já o declara (2cents, isto deveria estar na documentação).
el_loko
JavaEvangelist

Membro desde: 30/10/2007 12:09:43
Mensagens: 357
Offline

wood wrote:Nos exemplos, o que eu tenho visto é um @Component dando um @AutoWired em beans do Spring.

É possível fazer o contrário? A partir de um bean do Spring dar um @AutoWired em @Component's do VRaptor?

Comigo está acontecendo este erro

Em outro Post, vi que o Lucas informou que não é possível que tenha o listener RequestContextListener no web.xml pois o VRaptor já o declara (2cents, isto deveria estar na documentação).


Boa tarde,

Não sei se entendi direito, mas você está fazendo a injeção via setter, no método setUsuarioDAO, certo?
Qual a versão do VRaptor que você está usando? Pois, acho que à partir da versão 3 a injeção via setter não é mais suportada.

De qualquer forma dá uma olhada nesse tópico: http://www.guj.com.br/java/236664-vraptor--injecao-no-field
wood
JavaChild

Membro desde: 01/06/2006 12:38:40
Mensagens: 121
Offline

El_loko, estou usando a versão 3.3.1.
Via field também apresenta o mesmo erro.

A dúvida é: Como injetar um "bean" (@Component) do vraptor em um bean do spring?
Lucas Cavalcanti
GUJ Hacker
[Avatar]

Membro desde: 08/07/2007 00:08:14
Mensagens: 6396
Online

Olá wood,

a partir da versão 3.3.0 dá pra injetar um bean do spring no vraptor e vice versa,

o erro é por outro motivo:

ou seja, o usuarioDAOImpl é request scoped e vc tá tentando injetá-lo em um bean singleton (ou coisa do tipo)
como o próprio erro sugere, vc pode usar scoped proxies..

anote o setter com:


se não funcionar, anote a classe UsuarioDAOImpl com essa anotação, e tudo vai funcionar.

[]'s

--
Caelum
www.caelum.com.br

wood
JavaChild

Membro desde: 01/06/2006 12:38:40
Mensagens: 121
Offline

Lucas, o problema continua.

O problema acontece especificamente pro causa da situação abaixo.

Configurando o spring-security dessa forma:


O bean usuarioManager tem a funcao de autenticação. Ele está declarado assim:


A classe UserManagerImpl faz referência a outro bean (anotado com @Component), e é no momento de injetar este bean que ocorre o erro.

This message was edited 1 time. Last update was at 17/05/2011 19:34:37

Lucas Cavalcanti
GUJ Hacker
[Avatar]

Membro desde: 08/07/2007 00:08:14
Mensagens: 6396
Online

o UsuarioDao não pode ser @RequestScoped então (é o default do VRaptor)

anote o UsuarioDao com @ApplicationScoped (talvez vc tenha que receber SessionFactory ao invés de Session, ou algo do tipo

--
Caelum
www.caelum.com.br

wood
JavaChild

Membro desde: 01/06/2006 12:38:40
Mensagens: 121
Offline

Não aconteceu o erro agora, mas também o bean não foi injetado
Lucas Cavalcanti
GUJ Hacker
[Avatar]

Membro desde: 08/07/2007 00:08:14
Mensagens: 6396
Online

o setter está com @Autowired?

--
Caelum
www.caelum.com.br

wood
JavaChild

Membro desde: 01/06/2006 12:38:40
Mensagens: 121
Offline

Está sim. Bem estranho esse novo "problema".

Final de semana eu vou isolar o problema para ver entender melhor o que está acontecendo.

Valeu Lucas.
Lucas Cavalcanti
GUJ Hacker
[Avatar]

Membro desde: 08/07/2007 00:08:14
Mensagens: 6396
Online

só um detalhe:

se possível use o applicationContext.xml no classpath, sem listeners registrados no web.xml, daí tudo deveria funcionar sem problemas...

--
Caelum
www.caelum.com.br

xenevreu
Entusiasta Java

Membro desde: 04/08/2008 21:41:35
Mensagens: 24
Localização: São Paulo/SP
Offline

Wood,

Conseguiu resolver o problema? Estou exatamente com o mesmo cenário...

Aproveitando: Lucas, pra poder usar o spring-security precisamos declarar o filtro do spring. Neste caso, o applicationContext.xml precisa ficar dentro do WEB-INF, e não no classpath... Acha que tem alguma coisa a ver com isto?
[WWW] [MSN]
Lucas Cavalcanti
GUJ Hacker
[Avatar]

Membro desde: 08/07/2007 00:08:14
Mensagens: 6396
Online

se não me engano dá pra configurar o spring security para usar o applicationContext do classpath...

quais listeners vc está registrando no web.xml?

--
Caelum
www.caelum.com.br

xenevreu
Entusiasta Java

Membro desde: 04/08/2008 21:41:35
Mensagens: 24
Localização: São Paulo/SP
Offline

Meu web.xml tem somente:


A configuração do vraptor tá vindo via web-fragment.xml...

[WWW] [MSN]
Lucas Cavalcanti
GUJ Hacker
[Avatar]

Membro desde: 08/07/2007 00:08:14
Mensagens: 6396
Online

o problema é q o VRaptor não funciona bem com esse context Loader listener (pq ele faz o mesmo trabalho)... se vc tira o listener, o security não funciona?

--
Caelum
www.caelum.com.br

xenevreu
Entusiasta Java

Membro desde: 04/08/2008 21:41:35
Mensagens: 24
Localização: São Paulo/SP
Offline

Não rola... ele fica mal educado e diz:

No WebApplicationContext found: no ContextLoaderListener registered?
[WWW] [MSN]
 
Índice dos Fóruns » Frameworks e Bibliotecas brasileiros
Ir para:   
Powered by JForum 2.1.8 © JForum Team