VRAPTOR 2 + SPRING 3 COM JPA (HIBERNATE PROVIDER) = org.hibernate.LazyInitializationException

7 respostas
jvlouvem

Oi pessoal,

assim que comecei o projeto, tentei configurar o projeto para não acontecer erro de LazyInitializationException.
Acabei desistindo e fazia queries sempre que precisava para evitar esse erro, mas agora chegou num ponto que preciso resolver isso.

Não sei o que está faltando

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
	id="WebApp_ID" version="2.5">
	
	<welcome-file-list>
		<welcome-file>index.jsp</welcome-file>
	</welcome-file-list>

	<filter>
		<filter-name>openEntityManagerInViewFilter</filter-name>
		<filter-class>org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter</filter-class>
	</filter>

	<filter-mapping>
		<filter-name>openEntityManagerInViewFilter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>

	<context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>classpath:/applicationContext*.xml</param-value>
	</context-param>

	<listener>
		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	</listener>

	<listener>
		<listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
	</listener>


	<servlet>
		<servlet-name>vraptor2</servlet-name>
		<servlet-class>org.vraptor.VRaptorServlet</servlet-class>
		<load-on-startup>1</load-on-startup>
	</servlet>
	<servlet-mapping>
		<servlet-name>vraptor2</servlet-name>
		<url-pattern>*.do</url-pattern>
	</servlet-mapping>
</web-app>

vraptor.xml

<vraptor>
    <plugin>org.vraptor.plugin.spring.SpringPlugin</plugin>
</vraptor>

O que está errado ?

7 Respostas

Lucas_Cavalcanti

como vc está obtendo o EntityManager? via JPAXXXTemplate ou extendendo JPAXXXX do spring?

jvlouvem

Oi Lucas, muito obrigado por responder

A classes DAO estendem de JpaDaoSupport.
O Entity Manager eu uso via getJpaTemplate()

Lucas_Cavalcanti

tenta tirar o RequestContextListener, só o ContextLoaderListener é o suficiente

jvlouvem

Oi Lucas,

vou tentar sim, só vou poder testar de noite.
Depois volto aqui pra dar um feedback

valeu, abraços

jvlouvem

Retirei a parte que voce falou, mas o erro continua o mesmo

Esse problema é f…, lembro que no começo do projeto tirei dois dias inteiros só para resolver isso e desisti.

Será que é alguma incompatibilidade com o VRaptor 2 ?

Uma coisa que testei também e não deu certo foi alterar os valores do “1”, mas em vão

Lucas_Cavalcanti

aonde está dando o LazyInit mesmo?

jvlouvem

Oi, desculpe não entendi a pergunta, mas vamos lá

Bom, todo objeto em que que tem uma relação @OneToMany com o outro, qualquer chamada dessa lista dá Lazy.
Toda vez que quero pegar uma lista desse caso ai, tenho que fazer uma query JPA pra isso

Criado 30 de novembro de 2010
Ultima resposta 1 de dez. de 2010
Respostas 7
Participantes 2