Alguem pode decodificar essa mensagem? Consigo gerar o relatorio jasper mas sempre dá esse erro.
SEVERE: Servlet.service() for servlet default threw exception
org.hibernate.SessionException: Session is closed!
at org.hibernate.impl.AbstractSessionImpl.errorIfClosed(AbstractSessionImpl.java:49)
at org.hibernate.impl.SessionImpl.clear(SessionImpl.java:253)
at br.gov.pa.tj.processo.util.interceptors.HibernateInterceptor.intercept(HibernateInterceptor.java:32)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
Quando você uma Hibernate, a cada objeto que você usa, na verdade é um proxy fazendo um link para a Session do Hibernate.
Se eu fizer um load, por exemplo, de um objeto, esse objeto na verdade não é pesquisado no banco na hora, o hibernate apenas me retorna um proxy, e quando eu fizer algum get de alguma propriedade do objeto, aí o Hibernate usa esse link com a Session para realmente buscar o objeto na base de dados. Mais informações sobre isso você pode encontrar na documentação, tópico Lazy Load.
Então o que acontece é que por alguma razão quando você for fazer algum get a sessão do Hibernate já está fechada.
Para ajudar a resolver precisamos entender teu ambiente. Tem Spring? EJB? JPA? Hibernate?
É isso mesmo que o otavio falou, o hibernate te delega um proxy managed que só dura enquanto a session está ativa.
Olhe o padrão Open Session In View, deve resolver seu problema.
[quote=Anderson Leite]É isso mesmo que o otavio falou, o hibernate te delega um proxy managed que só dura enquanto a session está ativa.
Olhe o padrão Open Session In View, deve resolver seu problema.
[/quote]
Exato. Por isso perguntei a ele o que está sendo usado no projeto, pois com Spring (por exemplo) há um filter que já faz esse trabalho, assim como outros frameworks.