FileNet异常“读取RenditionEngineConnection时发生异常”

时间:2020-04-08 07:11:17

标签: filenet-p8

我正在尝试使用IBM FileNet发布文档。

我使用了手册: https://www.ibm.com/support/knowledgecenter/SSNW2F_5.2.0/com.ibm.p8.ce.dev.ce.doc/publish_procedures.htm

但是我遇到了一个异常“读取RenditionEngineConnection时发生了异常”。

我怎么了? 我们应该如何设置“ FileNet P8 Rendition Engine”? https://www.ibm.com/support/knowledgecenter/it/SSNW2F_5.1.0/com.ibm.p8.installingre.doc/p8pic003.htm

我的源代码:

/**
 * Create {@link PublishStyleTemplate}
 *
 * @param objectStore {@link ObjectStore}
 * @param description description
 */
public void createPublishStyleTemplate(final ObjectStore objectStore, final String description) {

    PublishStyleTemplate pst = Factory.PublishStyleTemplate.createInstance(objectStore);

    pst.set_Title(description);
    pst.set_Description(description);

    StringList formats = Factory.StringList.createList();
    formats.add("text/plain");
    formats.add("application/msword");
    formats.add("application/vnd.ms-excel");
    formats.add("application/vnd.ms-powerpoint");
    formats.add("application/vnd.openxmlformat");
    formats.add("application/vnd.openxmlformats-officedocument.wordprocessingml.document");
    formats.add("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
    formats.add("application/vnd.openxmlformats-officedocument.presentationml.presentation");
    pst.set_InputFormats(formats);

    // ProviderID must use the well-known handler name.
    String PDF_HANDLER = "PublishRequestPDFHandler";
    pst.set_ProviderID(PDF_HANDLER);
    pst.set_OutputFormat("application/pdf"); // PDF transformation

    pst.save(RefreshMode.REFRESH);
}

/**
 * Create {@link PublishTemplate}
 *
 * @param objectStore {@link ObjectStore}
 * @param publishStyleTemplate {@link PublishStyleTemplate}
 * @param description description
 */
public void createPublishTemplate(final ObjectStore objectStore, final PublishStyleTemplate publishStyleTemplate, final String description) {

    // Create a publish template object.
    PublishTemplate pt = Factory.PublishTemplate.createInstance(objectStore);

    pt.set_StyleTemplate(publishStyleTemplate);

    // Set document title for the publish template
    pt.getProperties().putValue("DocumentTitle", description);
    pt.set_Description("test_PublishTemplate");

    // Is there a cascade delete dependency between source document and publication?
    boolean isSourceDependency = true;

    // isSourceDependency is a boolean variable that specifies whether the user wants
    // to delete the publication automatically when the source is deleted. It is whichever value
    // (true or false) the user chooses.
    String VALUE_ISSOURCEDEPENDENCY = isSourceDependency ? "true" : "false";

    // Publish template content.
    String PT_CONTENT =
            "<?xml version='1.0'?>" +
                    "<publishtemplatecontent>" +
                        "<version>2.0.1</version>" +
                        "<newinstructions>" +
                            "<issourcedependent>" + VALUE_ISSOURCEDEPENDENCY + "</issourcedependent>" +
                            "<outputfolderid>" + "B0FA3471-0000-CD1D-9D5E-B1E6E5E82135" + "</outputfolderid>" +
                            "<applyproperties><from>source</from></applyproperties>" +
                            "<applysecurity><from>default</from></applysecurity>" +
                        "</newinstructions>" +
                        "<republishinstructions>" +
                            "<versionablerepublishtype>versionandkeep</versionablerepublishtype>" +
                            "<nonversionablerepublishtype>addandkeep</nonversionablerepublishtype>" +
                            "<applypropertiesfrom>destination</applypropertiesfrom>" +
                            "<applysecurityfrom>destination</applysecurityfrom>" +
                        "</republishinstructions>" +
                    "</publishtemplatecontent>";

    String[] PT_DATA = {"myNewPublishTemplate.xml", "application/x-filenet-publishtemplate", PT_CONTENT};

    // Create content elements.
    ContentElementList cel = Factory.ContentElement.createList();

    ContentTransfer ctNew = Factory.ContentTransfer.createInstance();
    ByteArrayInputStream is = new ByteArrayInputStream(PT_CONTENT.getBytes());
    ctNew.setCaptureSource(is);
    ctNew.set_RetrievalName(PT_DATA[0]);
    ctNew.set_ContentType(PT_DATA[1]);

    cel.add(ctNew);

    pt.set_ContentElements(cel);

    // Check in publish template as major version.
    pt.checkin(AutoClassify.DO_NOT_AUTO_CLASSIFY, CheckinType.MAJOR_VERSION);
    pt.save(RefreshMode.REFRESH);
}

/**
 * Create {@link PublishRequest}
 *
 * @param objectStore
 * @param document
 * @param publishTemplate
 * @return
 */
public PublishRequest createPublishRequest(
        final ObjectStore objectStore,
        final Document document,
        final PublishTemplate publishTemplate) {

    System.out.println(String.format("Document Id = %s", document.get_Id().toString()));
    System.out.println(String.format("Document MimeType = %s", document.get_MimeType()));
    System.out.println(String.format("Document Name = %s", document.get_Name()));
    System.out.println(String.format("PublishTemplate Id = %s", publishTemplate.get_Id().toString()));

    PublishStyleTemplate publishStyleTemplate = publishTemplate.get_StyleTemplate();
    System.out.println(String.format("PublishStyleTemplate ProviderID = %s", publishStyleTemplate.get_ProviderID()));
    StringList stringList = publishStyleTemplate.get_InputFormats();
    Iterator iterator = stringList.iterator();
    while(iterator.hasNext()) {
        String inputFormat = (String) iterator.next();
        System.out.println(String.format("PublishStyleTemplate InputFormat = %s", inputFormat));
    }

    String publishOpts = new String(
            "<publishoptions><publicationname>"
            + document.get_Name()
            + "</publicationname></publishoptions>");

    PublishRequest publishRequest = Factory.PublishRequest.createInstance(objectStore);
    publishRequest.set_InputDocument(document);
    publishRequest.set_PublishTemplate(publishTemplate);
    publishRequest.setPublishOptions(publishOpts);

    publishRequest.save(RefreshMode.REFRESH);

    return publishRequest;
}

日志: 2020-04-14T12:47:57.492 9F0B4BDE PUBL FNRCE0000E-错误错误:读取RenditionEngineConnection被抛出:发生意外的异常。 2020-04-14T12:47:57.493 9F0B4BDE PUBL FNRCE0000I-INFO InvokeVista异常:读取RenditionEngineConnection时发生异常。 2020-04-14T12:47:57.493 E0476562 PUBL FNRCE0066E-错误未能派发PublishRequest行{B0AB7771-0000-CA39-BFFD-BF7A84D30A96} \ ncom.filenet.api.exception.EngineRuntimeException:FNRCE0066E:E_UNEXPECCTED_EXCEPTION:发生意外。 n在com.filenet.engine.publish.PublishRequestPDFHandler.publishPDF(PublishRequestPDFHandler.java:435)\ n在com.filenet.engine.publish.PublishRequestPDFHandler.execute(PublishRequestPDFHandler.java:169)\ n在com.filenet.engine。 publish.PublishRequestHandlerBase $ 1.run(PublishRequestHandlerBase.java:226)\ n在com.filenet.engine.context.CallState.doAs(CallState.java:236)\ n在com.filenet.engine.context.CallState.doAs(CallState .java:153)\ n com.filenet.engine.publish.PublishRequestHandlerBase.executeAs(PublishRequestHandlerBase.java:215)\ n com.filenet.engine.publish.PublishRequestExecutor.loadAndExecuteQueuedRow(PublishRequestExecutor.java:214)\ n com.filenet.engine.queueitem.QueueExecutor.dispatchQueuedRow(Que ueExecutor.java:389)\n在com.filenet.engine.queueitem.QueueExecutor.dispatchEvent(QueueExecutor.java:209)\ n在com.filenet.engine.queueitem.QueueExecutor.execute(QueueExecutor.java:133)\ n在com.filenet.engine.tasks.BackgroundTask.safeExecute(BackgroundTask.java:275)\ n在com.filenet.engine.tasks.BackgroundTask $ BackgroundTaskPriviledgedExceptionAction.run(BackgroundTask.java:1110)\ n在com.filenet.engine .context.CallState.doAsSystem(CallState.java:575)\ n在com.filenet.engine.tasks.BackgroundTask.run(BackgroundTask.java:209)\ n在java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java :1153)\ n在java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:628)\ n在java.lang.Thread.run(Thread.java:785)\ n原因:com.filenet.api .exception.EngineRuntimeException:FNRCU0005E:PUBLISH_READING_REC_THREW:在com.filenet.engine.publish.Publish上读取RenditionEngineConnection时发生异常。 RequestHandlerUtil.readRenditionEngineConnection(PublishRequestHandlerUtil.java:199)\ n在com.filenet.engine.publish.PublishRequestPDFHandler $ InvokeVistaPDF $ 1.run(PublishRequestPDFHandler.java:128)\ n在com.filenet.engine.context.CallState.doAs(CallState .java:236)\ n com.filenet.engine.context.CallState.doAs(CallState.java:153)\ n com.filenet.engine.publish.PublishRequestPDFHandler $ InvokeVistaPDF.run(PublishRequestPDFHandler.java:118)\ n ... 3个其他\ n原因:com.filenet.api.exception.EngineRuntimeException:FNRCE0066E:E_UNEXPECTED_EXCEPTION:发生意外的异常。\ n com.filenet.engine.publish.PublishRequestHandlerUtil.readRenditionEngineConnection(PublishRequestHandlerUtil.java:120) \ n ...另外7个 2020-04-14T12:47:57.494 E0476562 PUBL FNRCE0000I-信息dispatchFailed:标记为{B0AB7771-0000-CA39-BFFD-BF7A84D30A96}的队列项目为“中毒”,将不再重试。

0 个答案:

没有答案