У меня есть cms на основе Java SEAM.Пользовательский интерфейс реализован на основе JSF с одним исключением - одна подстраница реализована с использованием простого HTML с angualrJS.Эта одна подстраница взаимодействует с cms по этому классу:
@Name("editorv2Service")
@Path("/4854b417-6aea-4ed5-920e-f56083c21d68")
@Scope(ScopeType.SESSION)
public class Editorv2Service {
@GET
@Path("/editorv2json/accountMetaData")
@Produces("application/json;charset=UTF-8")
public Response getAccountMetaData() {
...some code...
}
... other methods...
}
Я могу перемещаться между страницами JSF, я могу открыть страницу AngualrJS, а затем вернуться на страницы JSF и т. Д. Все работает нормально, пока AngualrJS не вызовет getAccountMetaData.Сам метод работает нормально, возвращая действительные данные.Проблема заключается в том, что после вызова метода переход на какую-либо страницу JSF приводит к следующему исключению:
/templates/system/layout/common/pagebegining.xhtml @68,76 test="#{!addModulePermission and identity.hasRole('TRIAL')}" Permissions.Rule_CheckModules_0Eval0Invoker@aeeb6e23 : org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: pl.ceferty.cms.entity.portal.Portal.sections, no session or session was closed
Похоже, что вызов любого метода Editorv2Service закрывает сеанс Hibernate.Сессия пользователя не закрыта - я все еще могу перейти на некоторые страницы JSF.
Это похоже на ошибку в SEAM.Есть ли решение или какой-то обходной путь?
Я прочитал все ответы, описывающие подобные проблемы, но у меня ничего не получилось.