0

我想使用 CQ API 调用来删除作品集生产者中的作品集。我看到http://docs.adobe.com/docs/en/cq/5-6-1/javadoc/com/adobe/cq/media/publishing/dps/fp/DPSSessionService.html可以创建会话。
创建会话后,我可以使用http://docs.adobe.com/docs/en/cq/5-6-1/javadoc/com/adobe/cq/media/publishing/dps/fp/DPSFolioProducerService.html删除具有 folioId 的作品集。
我不知道如何实现这个接口来完成这项工作。我试图@Reference private DPSSessionService dpssession;

但是,这不会将我的流程部署到我的工作流程中。我不确定如何让它工作。

4

2 回答 2

0

终于让它工作了:

@Reference
private DPSSessionService sessionService;
private DPSSession dpsSession = null;
private DPSFolioProducerService folioProducer; 

 try {
    dpsSession = sessionService.createSession("username", "password");
     folioProducer = dpsSession.adaptTo(DPSFolioProducerService.class);
     folioProducer.deleteFolio(folioId);
      sessionService.deleteSession(dpsSession);
   } catch (DPSSessionServiceException ex) {
       log.error("Failed setup", ex);
   } catch (DPSFolioProducerServiceException e) {
      log.error("Delete Folio failed", e);
    }
于 2015-03-24T21:05:12.997 回答
0

也许你可以通过你的 OSGi 包的上下文来获得你的服务。

你可以尝试这样的事情(虽然没有测试):

BundleContext bundleContext = FrameworkUtil.getBundle(this.getClass()).getBundleContext();
ServiceReference dpsFolioProducerServiceReference = bundleContext.getServiceReference(DPSFolioProducerService.class);
DPSFolioProducerService yourDPSFolioProducerService = (DPSFolioProducerService) bundleContext.getService(dpsFolioProducerServiceReference );

例如,您可以在您的 servlet 中使用它。

  1. 获取捆绑上下文
  2. 构建对您的服务的引用
  3. 使用您的参考获得服务
于 2015-03-23T12:34:54.930 回答