Spring + Hibernate = the owning Session was closed

8 respostas
micheljuca

Já vasculhei em tudo que é canto, principalmente no forum.springframework mas só fica na promessa. Alguem ja conseguiu usar lazy com spring? Falam muito nesse OpenSessionInViewFilter. Alguem ja fez isso funcionar?

[]´s

8 Respostas

M

Já sim
tanto com WebWork como com SpringMVC

talvez este link lhe ajude
http://www.jroller.com/page/kbaum?entry=orm_lazy_initialization_with_dao

se não conseguir, poste aqui o problema e sua configuração.

micheljuca

Na verdade ainda nem existe VIEW. Criei so um servlet pra testar a persistencia com hibernate, e uso o Spring pra controle de transacao. A view será JSF.

fviana

Bom, a alguns meses atras implementei o controle de sessão do hibernate usando o spring integrado com struts. Não tive nenhum problema. Ele resolve o problema de objetos lazy. Na verdade pra integrar com JSF é a mesma coisa, vc deverá definir os beans do DAO e adicionar um Filter do Spring que inicia a sessão do hibernate.
Dê uma olhada na referencia do Spring… eu fiz tudo baseado na referencia dele.

micheljuca

um pouco de codigo:

web.xml

<filter>
		<filter-name>hibernateFilter</filter-name>
		<filter-class>
			org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
		</filter-class>
	</filter>
	
	<filter-mapping>
		<filter-name>hibernateFilter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>

Eh esse Filter que vc ta falando?

Talvez o problema seja a forma que estou testando:

ApplicationContext ac;
		TesteService service; 

		ac = new FileSystemXmlApplicationContext(PATH_APPLICATION_CONTEXT);
		service = (TesteService) ac.getBean("testeService");
		
		EmpresaVO vo = null;
		vo = service.select(new Long(26));
		System.out.println(vo.getRazaoSocial());
		BalancoVO balanco = null;
		balanco = vo.getBalanco();
		System.out.println(balanco);
		System.out.println(balanco.getDetalhe());
M

Ahhh, mas ai dentro do Servlet vai dar problemas mesmo, ao menos, que vc coloque o Servlet no Contexto do Spring.

micheljuca

usei JSF e funcionou.

valeu pela atencao.

M

micheljuca:
usei JSF e funcionou.

valeu pela atencao.

Opa, precisando …

antoniopopete

mambira:

Ahhh, mas ai dentro do Servlet vai dar problemas mesmo, ao menos, que vc coloque o Servlet no Contexto do Spring.

Eu coloquei minha action no contexto do spring e mesmo assim continua dando erro.
Estou usando o filter do spring e hibernate.
Struts 2.

VOcê sabe o que poderia ser?

Criado 5 de abril de 2006
Ultima resposta 29 de mai. de 2008
Respostas 8
Participantes 4