上次更新日期:
2021年4月29日
问题
以下一个或两个错误均随机记录在 AEM 日志中:
java.lang.IllegalStateException: 此会话已关闭
java.lang.IllegalStateException: 资源解析程序已关闭。
原因
问题的原因可能是由于多线程使用同一 ResourceResolver,或者关闭了未在自己的代码中打开的 ResourceResolver 或 javax.jcr.Session。
解决方案
通过 SlingRequest 或 WorkflowSession 获取的会话和 ResourceResolver 对象,无法由应用程序关闭。例如:
slingRequest.getResourceResolver().adaptTo(Session.class);
//Or
workflowSession.getSession();
该解析程序或会话将在处理完请求后自动关闭。