VRaptor 3 + Hibernate + OpenSessionInViewFilter(Spring): LazyInitializationException[RESOLVIDO]  XML
Índice dos Fóruns » Frameworks e Bibliotecas brasileiros
Autor Mensagem
g4j
GUJ Ranger
[Avatar]

Membro desde: 02/05/2007 14:32:03
Mensagens: 817
Localização: Curitiba
Offline

Pessoal,

Estou fazendo alguns testes com o vraptor, usando ele para fazer a parte view. Fazendo um jsp simples de filtro, onde lista somente dados dos clientes funcionou ok. Quando alterei para a cada registro de cliente mostrar também os dependentes obtive LazyInitializationException.

Obs. Eu tenho a parte de back-end toda pronta com Spring, pois pretendo fazer testes com outros frameworks.

clienteFiltrar.jsp


ClienteController.java


Minhas classes de serviço e de acesso aos dados estão funcionando.




web.xml


se eu inverter as posições dos filters, colocando openSessionInViewFilter antes do vraptor, o tomcat inicia, mas quando executo /cliente/clienteFiltrar ele reclama que não que não foi registrado o ContextLoadListener do Spring:



Realmente ele não está lá porque, acredito eu, o VRaptor deveria ter registrado isso.

Se eu coloco o listener do spring, funciona, mas não sei se isso tem impacto e/ou problema.

Alguem tem alguma luz? Falta alguma coisa pra configurar?

This message was edited 2 times. Last update was at 26/11/2010 16:15:46


Gerson Luiz Chagas

SCJP 5.0
SCWCD 5.0

francislei.reis
Entusiasta Java
[Avatar]

Membro desde: 28/05/2009 18:44:18
Mensagens: 20
Offline

Cara tenta o seguinte:
Precisa inicializar o que quer retornar lá no DAO usando: Hibernate.initialize("");




's
[Email] [MSN]
zoren
GUJ Master
[Avatar]

Membro desde: 30/06/2008 08:32:33
Mensagens: 1007
Offline

Quando você usa o Suporte ao hibernate pelo VRaptor, ele adiciona automaticamente o suporte ao open session in view.

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

Membro desde: 08/07/2007 00:08:14
Mensagens: 6395
Offline

a configuração


não é necessária..

como vc está usando as sessões do hibernate? pelo spring (HibernateTemplate ou coisa do tipo)... o OpenSessionInViewFilter só funciona se vc controlar a sessão usando o Spring.

vc precisa também declarar o ContextLoaderListener pro OpenSessionInView funcionar:

--
Caelum
www.caelum.com.br

g4j
GUJ Ranger
[Avatar]

Membro desde: 02/05/2007 14:32:03
Mensagens: 817
Localização: Curitiba
Offline

zoren wrote:Quando você usa o Suporte ao hibernate pelo VRaptor, ele adiciona automaticamente o suporte ao open session in view.

@zoren,

o suporte do hibernate é feito pelo spring não pelo vraptor.

@Lucas
Vou testar e já posto aqui

This message was edited 1 time. Last update was at 25/11/2010 14:25:25


Gerson Luiz Chagas

SCJP 5.0
SCWCD 5.0

g4j
GUJ Ranger
[Avatar]

Membro desde: 02/05/2007 14:32:03
Mensagens: 817
Localização: Curitiba
Offline

Funcionou.

Lucas Cavalcanti wrote:
a configuração


não é necessária..

ok, retirada.

Lucas Cavalcanti wrote:
como vc está usando as sessões do hibernate? pelo spring (HibernateTemplate ou coisa do tipo)... o OpenSessionInViewFilter só funciona se vc controlar a sessão usando o Spring.

vc precisa também declarar o ContextLoaderListener pro OpenSessionInView funcionar:



Exatamente. Estou usando HibernateTemplate mas não tinha o ContextLoadListener declarado no web.xml. Eu não sabia se haveria algum problema em ter ele junto com o provider do vraptor. Tirando o provider e adicionando o listener passou a funcionar.

Grato!



Gerson Luiz Chagas

SCJP 5.0
SCWCD 5.0

dgouvea
Java Ninja
[Avatar]

Membro desde: 08/05/2003 08:32:35
Mensagens: 288
Localização: São Paulo
Offline

No meu caso não deu certo



E no meu web.xml



Ainda está dando LazyInitializationException: failed to lazily initialize a collection of role

O que posso fazer?

Obrigado

David Gouvea
http://davidgouvea.wordpress.com
Definity Toolkit Framework
[Email] [ICQ]
Lucas Cavalcanti
GUJ Hacker
[Avatar]

Membro desde: 08/07/2007 00:08:14
Mensagens: 6395
Offline

inverte a ordem de declaração dos filtros... deixa o do spring antes do do vraptor

--
Caelum
www.caelum.com.br

dgouvea
Java Ninja
[Avatar]

Membro desde: 08/05/2003 08:32:35
Mensagens: 288
Localização: São Paulo
Offline

Apareceu outro probema, no openSessionInViewFilter preciso passar um sessionFactoryBeanName, mas eu não tenho no applicationContext.xml só tenho entityManagerFactory


David Gouvea
http://davidgouvea.wordpress.com
Definity Toolkit Framework
[Email] [ICQ]
Lucas Cavalcanti
GUJ Hacker
[Avatar]

Membro desde: 08/07/2007 00:08:14
Mensagens: 6395
Offline

então vc precisa do OpenEntityManagerInVIewFilter

--
Caelum
www.caelum.com.br

dgouvea
Java Ninja
[Avatar]

Membro desde: 08/05/2003 08:32:35
Mensagens: 288
Localização: São Paulo
Offline

Deu certo.

Obrigado pela ajuda.

David Gouvea
http://davidgouvea.wordpress.com
Definity Toolkit Framework
[Email] [ICQ]
 
Índice dos Fóruns » Frameworks e Bibliotecas brasileiros
Ir para:   
Powered by JForum 2.1.8 © JForum Team