0

CQ API 呼び出しを使用して Folio プロデューサーで Folio を削除したいと考えています。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 の Folio を削除します。
このインターフェイスを実装してこれを機能させる方法がわかりません。@Reference private DPSSessionService dpssession; を試してみました。

ただし、これではプロセスがワークフローにデプロイされません。どうすればこれを機能させることができるかわかりません。

4

2 に答える 2

0

OSGi バンドルのコンテキストを通じてサービスを取得できるかもしれません。

このようなことを試すことができます(ただし、テストされていません):

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

たとえば、サーブレットでこれを使用できます。

  1. バンドル コンテキストを取得する
  2. サービスへの参照を作成する
  3. 参照を使用してサービスを取得する
于 2015-03-23T12:34:54.930 に答える
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 に答える