Open session in view - session closed?

Boa tarde pessoal!

Após dicas de nossos amigos do fórum, eu mudei minha configuração do hibernate, para “open session in view”…
Ficou perfeito meu código, e os problemas que eu vinha tendo com LAZY, acabou…
A estrutura que usei do open session in view, é igual o do manual do jboss…
O problema agora que estou, é com o JSF f:ajax, ou p:ajax… Quando eu tenho um selectonemenu, e um p:ajax nele, ele consegue executar o método, mas dá como session closed.

Ficou assim o dao:

public class CidadeDao implements Serializable { Session currentSession; public CidadeDao() { currentSession = HibernateUtil.getSessionFactory().getCurrentSession(); } public List<Cidade> listarTodos(Estado estado) { return currentSession.createCriteria(Cidade.class) .add(Restrictions.eq("est_id", estado)) .addOrder(Order.asc("cid_nome")) .list(); }
O selectonemenu:

<p:selectOneMenu id="estado" value="#{novoClienteBean.comboBean.estado}" converter="converterEstado" > <f:selectItem itemLabel="Selecione" /> <f:selectItems value="#{novoClienteBean.comboBean.estados}" var="e" itemValue="#{e}" itemLabel="#{e.est_nome}" /> <p:ajax listener="#{novoClienteBean.comboBean.listaCidades}" immediate="true" event="change" update=":novoCliente:cidade" /> </p:selectOneMenu>
Método que o selectonemenu chama:

public void listaCidades() { cidades = cidDao.listarTodos(estado); }

E o erro:

WARNING: /vendas/novoCliente.xhtml @115,169 listener="#{novoClienteBean.comboBean.listaCidades}": org.hibernate.SessionException: Session is closed! javax.el.ELException: /vendas/novoCliente.xhtml @115,169 listener="#{novoClienteBean.comboBean.listaCidades}": org.hibernate.SessionException: Session is closed! at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:111) at org.primefaces.component.behavior.ajax.AjaxBehaviorListenerImpl.processAjaxBehavior(AjaxBehaviorListenerImpl.java:42) at javax.faces.event.AjaxBehaviorEvent.processListener(AjaxBehaviorEvent.java:113) at javax.faces.component.behavior.BehaviorBase.broadcast(BehaviorBase.java:106) at javax.faces.component.UIComponentBase.broadcast(UIComponentBase.java:760) at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:794) at javax.faces.component.UIViewRoot.processDecodes(UIViewRoot.java:935) at com.sun.faces.lifecycle.ApplyRequestValuesPhase.execute(ApplyRequestValuesPhase.java:78) at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101) at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:593) at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1550) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:343) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:217) at br.com.zanzini.filter.HibernateSessionRequestFilter.doFilter(HibernateSessionRequestFilter.java:17) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:217) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:279) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:161) at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:331) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:231) at com.sun.enterprise.v3.services.impl.ContainerMapper$AdapterCallable.call(ContainerMapper.java:317) at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:195) at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:860) at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:757) at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1056) at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:229) at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137) at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104) at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90) at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79) at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54) at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59) at com.sun.grizzly.ContextTask.run(ContextTask.java:71) at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532) at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513) at java.lang.Thread.run(Thread.java:722) Caused by: org.hibernate.SessionException: Session is closed! at org.hibernate.impl.AbstractSessionImpl.errorIfClosed(AbstractSessionImpl.java:49) at org.hibernate.impl.SessionImpl.createCriteria(SessionImpl.java:1508) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at org.hibernate.context.ThreadLocalSessionContext$TransactionProtectionWrapper.invoke(ThreadLocalSessionContext.java:301) at $Proxy145.createCriteria(Unknown Source) at br.com.zanzini.dao.CidadeDao.listarTodos(CidadeDao.java:53) at br.com.zanzini.bean.ComboBean.listaCidades(ComboBean.java:38) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at com.sun.el.parser.AstValue.invoke(AstValue.java:254) at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:302) at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105) ... 39 more

Daí eu pensei "ele pega a sessão no construtor, e se eu colocar um “cidDao = new CidadeDao();” dentro do metodo listarCidades? Eu fiz isso e daí a mensagem é:

WARNING: /vendas/novoCliente.xhtml @115,169 listener="#{novoClienteBean.comboBean.listaCidades}": org.hibernate.TransientObjectException: object references an unsaved transient instance - save the transient instance before flushing: br.com.zanzini.entity.Estado javax.el.ELException: /vendas/novoCliente.xhtml @115,169 listener="#{novoClienteBean.comboBean.listaCidades}": org.hibernate.TransientObjectException: object references an unsaved transient instance - save the transient instance before flushing: br.com.zanzini.entity.Estado at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:111) at org.primefaces.component.behavior.ajax.AjaxBehaviorListenerImpl.processAjaxBehavior(AjaxBehaviorListenerImpl.java:42) at javax.faces.event.AjaxBehaviorEvent.processListener(AjaxBehaviorEvent.java:113) at javax.faces.component.behavior.BehaviorBase.broadcast(BehaviorBase.java:106) at javax.faces.component.UIComponentBase.broadcast(UIComponentBase.java:760) at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:794) at javax.faces.component.UIViewRoot.processDecodes(UIViewRoot.java:935) at com.sun.faces.lifecycle.ApplyRequestValuesPhase.execute(ApplyRequestValuesPhase.java:78) at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101) at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:593) at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1550) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:343) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:217) at br.com.zanzini.filter.HibernateSessionRequestFilter.doFilter(HibernateSessionRequestFilter.java:17) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:217) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:279) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:161) at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:331) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:231) at com.sun.enterprise.v3.services.impl.ContainerMapper$AdapterCallable.call(ContainerMapper.java:317) at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:195) at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:860) at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:757) at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1056) at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:229) at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137) at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104) at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90) at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79) at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54) at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59) at com.sun.grizzly.ContextTask.run(ContextTask.java:71) at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532) at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513) at java.lang.Thread.run(Thread.java:722) Caused by: org.hibernate.TransientObjectException: object references an unsaved transient instance - save the transient instance before flushing: br.com.zanzini.entity.Estado at org.hibernate.engine.ForeignKeys.getEntityIdentifierIfNotUnsaved(ForeignKeys.java:219) at org.hibernate.type.EntityType.getIdentifier(EntityType.java:397) at org.hibernate.type.ManyToOneType.nullSafeSet(ManyToOneType.java:87) at org.hibernate.loader.Loader.bindPositionalParameters(Loader.java:1707) at org.hibernate.loader.Loader.bindParameterValues(Loader.java:1678) at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1563) at org.hibernate.loader.Loader.doQuery(Loader.java:673) at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:236) at org.hibernate.loader.Loader.doList(Loader.java:2220) at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2104) at org.hibernate.loader.Loader.list(Loader.java:2099) at org.hibernate.loader.criteria.CriteriaLoader.list(CriteriaLoader.java:94) at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1569) at org.hibernate.impl.CriteriaImpl.list(CriteriaImpl.java:283) at br.com.zanzini.dao.CidadeDao.listarTodos(CidadeDao.java:53) at br.com.zanzini.bean.ComboBean.listaCidades(ComboBean.java:39) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at com.sun.el.parser.AstValue.invoke(AstValue.java:254) at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:302) at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105) ... 39 more

Alguém já passou por isso e conseguiu resolver?

Obrigado pessoal!

Acho que seu problema está aqui: Caused by: org.hibernate.TransientObjectException: object references an unsaved transient instance - save the transient instance before flushing: br.com.zanzini.entity.Estado

Basta colocar esse cara attached na transação que vai dar tudo certo.

[quote=Hebert Coelho]Acho que seu problema está aqui: Caused by: org.hibernate.TransientObjectException: object references an unsaved transient instance - save the transient instance before flushing: br.com.zanzini.entity.Estado

Basta colocar esse cara attached na transação que vai dar tudo certo.[/quote]

Sou iniciante em java web, como eu faria esse anexo na transação?

Aqui explica sobre esse erro que destaquei: JPA: Mini Livro - Primeiros passos e conceitos detalhados.

Primeiramente, parábens pelo blog que na verdade é um livro muito “cheio”.

Muito obrigado! Consegui resolver, não sei se foi da melhor forma possível, mas eu consegui entender um pouco qual era o problema…

Como é open session in view, o que eu fiz foi colocar o cascade persistent no meu atributo Estado que fica na entidade Cidade, e depois pra buscar todas as cidades, eu coloquei:

[code] estDao = new EstadoDao();
cidDao = new CidadeDao();
cidades = cidDao.listarTodos(estDao.getEstadoById(estado.getEst_id()));[/code

Hebert Coelho

Estou com o mesmo problema. Porém acho que só ocorre quando eu mudo o meu ManagedBeam para @ViewScoped, pois usando @RequestScope tive problemas com dataTable do primefaces e vi alguém aconselhando a serializar o bean e coloca-lo em ViewScoped

a minha página carrega normalmente mais quando utilizo filtro filterBy na coluna da dataTable ai recebo a exception

Mai 22, 2014 6:58:16 PM org.primefaces.component.dialog.DialogRenderer encodeScript WARNING: The appendToBody attribute of the Dialog will be deprecated in future versions. Please use appendTo="@(body)" now Mai 22, 2014 6:58:19 PM com.sun.faces.context.PartialViewContextImpl$PhaseAwareVisitCallback visit SEVERE: javax.el.ELException: /student/new_process.xhtml @28,147 value="#{novoProcessoBean.disciplinas}": Error reading 'disciplinas' on type br.gov.eafcrato.jreuse.view.NovoProcessoBean Mai 22, 2014 6:58:19 PM com.sun.faces.application.view.FaceletViewHandlingStrategy handleRenderException SEVERE: Error Rendering View[/student/new_process.xhtml] javax.el.ELException: /student/new_process.xhtml @28,147 value="#{novoProcessoBean.disciplinas}": Error reading 'disciplinas' on type br.gov.eafcrato.jreuse.view.NovoProcessoBean at com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:111) at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:190) at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:178) at javax.faces.component.UIData.getValue(UIData.java:554) at org.primefaces.component.datatable.DataTable.getValue(DataTable.java:910) at org.primefaces.component.api.UIData.getDataModel(UIData.java:615) at org.primefaces.component.api.UIData.setRowModel(UIData.java:422) at org.primefaces.component.api.UIData.setRowIndex(UIData.java:414) at org.primefaces.component.api.UIData.visitTree(UIData.java:700) at javax.faces.component.UIComponent.visitTree(UIComponent.java:1487) at javax.faces.component.UIComponent.visitTree(UIComponent.java:1487) at javax.faces.component.UIForm.visitTree(UIForm.java:331) at javax.faces.component.UIComponent.visitTree(UIComponent.java:1487) at javax.faces.component.UIComponent.visitTree(UIComponent.java:1487) at javax.faces.component.UIComponent.visitTree(UIComponent.java:1487) at javax.faces.component.UIComponent.visitTree(UIComponent.java:1487) at javax.faces.component.UIComponent.visitTree(UIComponent.java:1487) at com.sun.faces.context.PartialViewContextImpl.processComponents(PartialViewContextImpl.java:361) at com.sun.faces.context.PartialViewContextImpl.processPartial(PartialViewContextImpl.java:282) at org.primefaces.context.PrimePartialViewContext.processPartial(PrimePartialViewContext.java:57) at javax.faces.component.UIViewRoot.encodeChildren(UIViewRoot.java:968) at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1643) at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:378) at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:127) at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:117) at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:97) at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:135) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:311) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at br.gov.eafcrato.jreuse.util.ConexaoHibernateFilter.doFilter(ConexaoHibernateFilter.java:63) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:344) at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:110) at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:84) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:356) at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:98) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:356) at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:95) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:356) at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:79) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:356) at org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:120) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:356) at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:55) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:356) at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:36) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:356) at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:188) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:356) at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:106) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:356) at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:80) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:356) at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:150) at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237) at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1040) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607) at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.doRun(AprEndpoint.java:2441) at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:2430) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source) Caused by: org.hibernate.SessionException: Session is closed! at org.hibernate.impl.AbstractSessionImpl.errorIfClosed(AbstractSessionImpl.java:72) at org.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1758) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.hibernate.context.ThreadLocalSessionContext$TransactionProtectionWrapper.invoke(ThreadLocalSessionContext.java:344) at com.sun.proxy.$Proxy21.createQuery(Unknown Source) at br.gov.eafcrato.jreuse.DAO.impl.DisciplinaCursoDAOHibenate.list(DisciplinaCursoDAOHibenate.java:39) at br.gov.eafcrato.jreuse.controller.DisciplinaController.getDisciplinasCurso(DisciplinaController.java:28) at br.gov.eafcrato.jreuse.view.NovoProcessoBean.getDisciplinas(NovoProcessoBean.java:66) at sun.reflect.GeneratedMethodAccessor24.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at javax.el.BeanELResolver.getValue(BeanELResolver.java:87) at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:67) at com.sun.faces.el.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:71) at org.apache.el.parser.AstValue.getValue(AstValue.java:182) at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:184) at com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:106) ... 77 more

minha página xhtml é

<p:dataTable value="#{novoProcessoBean.disciplinas}" id="tableDisciplinas" var="disciplina"
						emptyMessage="Nenhum registro encontrado"  filteredValue="#{novoProcessoBean.disciplinas}"
						sortBy="#{disciplina.semestre}" widgetVar="tableDisciplinas" paginator="true" rows="6"
						paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}">
						
						<f:facet name="header">
							Disciplinas
						</f:facet>
						
						<p:column headerText="Nome" >
							<center>
								<h:outputText value="#{disciplina.nome}" />
							</center>
						</p:column>
						<p:column headerText="Carga Horária">
							<center>
								<h:outputText value="#{disciplina.cargaHoraria} h" />
							</center>
						</p:column>
						<p:column headerText="Semestre" sortBy="semestre" filterBy="semestre">
							<center>
								<h:outputText value="#{disciplina.semestre}" />
							</center>
						</p:column>
						<p:column headerText="Opções">
							<center>
								<p:commandButton update=":frmDisciplinas:disciplinaDetail" 
									oncomplete="PF('dlgDisciplina').show()" value="Aproveitar"
									title="Opções">
									<f:setPropertyActionListener value="#{disciplina}"
										target="#{novoProcessoBean.disciplinaAproveitada}" />
								</p:commandButton>
							</center>
						</p:column>
					</p:dataTable>

Meu filter


package br.gov.eafcrato.jreuse.util;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

import org.hibernate.SessionFactory;

public class ConexaoHibernateFilter implements Filter {

	private SessionFactory	sf;

	@Override
	public void init(FilterConfig config) throws ServletException {
		this.sf = HibernateUtil.getSessionFactory();
	}

	@Override
	public void destroy() {
	}

	@Override
	public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain chain) throws ServletException {

		try {

			this.sf.getCurrentSession().beginTransaction();

			chain.doFilter(servletRequest, servletResponse);

			this.sf.getCurrentSession().getTransaction().commit();

		} catch (Throwable ex) {
			ex.printStackTrace();
			try {
				if (this.sf.getCurrentSession().getTransaction().isActive()) {
					this.sf.getCurrentSession().getTransaction().rollback();
				}
			} catch (Throwable t) {
				t.printStackTrace();
			}
			throw new ServletException(ex);
		}
	}

}

Possuo o seu livro de JPA eficaz e adquiri recentemente o JSF eficaz

Há alguma relação entre o open session in view com outros escopos?

Alguém???

Realmente não sei qual é o seu problema só olhando os trechos que você colocou. Uma coisa que me chamou atenção entretanto é o fato de você ter implementado o seu próprio “filter”, quando o Spring já disponibiliza um (e voce ta usando Spring). Não seria melhor usar o dele? É menos provável de possuir erros.