Метод бина закрывает сессию, в результате чего сессия не была закрыта - PullRequest
0 голосов
/ 23 сентября 2019

У меня есть 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.Есть ли решение или какой-то обходной путь?

Я прочитал все ответы, описывающие подобные проблемы, но у меня ничего не получилось.

...