【问题标题】:Should I close the session before closing the resource resolver我应该在关闭资源解析器之前关闭会话吗
【发布时间】:2016-10-19 05:15:21
【问题描述】:

我有简单的服务,让我们使用 resourceResolver 和 session 来处理一些逻辑:

@Component(immediate = true)
@Service(value = ServiceInterface.class)
public class ServiceInterfaceImpl implements ServiceInterface {

     //Some fields

     @Reference
     private ResourceResolverFactory resolverFactory;


     private void someMethod() {
          ResourceResolver resourceResolver = null;              
          try {
               resourceResolver = resolverFactory.getServiceResourceResolver(null);
               Session session = resourceResolver.adaptTo(Session.class)
               someMethod2(resourceResolver);
               someMethod3(session);
          } catch (LoginException e) {
              log.error(e.getMessage(), e);
          } finally {
              if (resourceResolver != null && resourceResolver.isLive()) {
                  resourceResolver.close();
              }
          }
     }

     //Some implementation
 }

我应该关闭会话,还是自动关闭resourceResolver.close()

【问题讨论】:

    标签: osgi jcr sling


    【解决方案1】:

    当你关闭 ResourceResolver 时会话会自动关闭,所以 resourceResolver.close() 就足够了。您可以深入研究代码以找到发生这种情况的位置。如果你得到一个会话 repo.loginAdministrative(),你应该在最后注销会话,但这不是获取 jcr 会话的推荐方式。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-25
      • 1970-01-01
      • 2012-06-18
      • 1970-01-01
      • 2011-01-08
      • 1970-01-01
      相关资源
      最近更新 更多