【问题标题】:How to Store a pdf document in Filenet如何在 Filenet 中存储 pdf 文档
【发布时间】:2026-02-23 08:40:01
【问题描述】:

我是 IBM 文件网的新手。我刚刚得到了 CMIS 文件网的 webservice url。

我的要求是将使用 apache 骆驼路由从一个系统获取的 PDF 文档存储到文件网。尝试在 SOAP UI 中导入 wsdl,我可以看到一组 API,如 createDocument、createFolder 等,是否有测试这些 API 的简单方法。首先,至少我想在 java 中进行简单测试,至少将文档存储在 filenet 中。请帮助我理解。

【问题讨论】:

    标签: java soap cmis filenet-p8 filenet


    【解决方案1】:

    要添加任何类型的文档,您需要将该文档签入到 FileNet ObjectStore 的任何特定文件夹中。

    为此,您只需要一个文档路径或它的 byteArray,来创建文件输入流,然后将其插入 ObjectStore。

    创建文档的代码,

    1. 创建与您的内容引擎的连接
    2. 参考代码可能会对您有所帮助

    public static void insertDocument(Connection conn, String domainName) {
        // Get domain.
        Domain domain = Factory.Domain.fetchInstance(conn, domainName, null);
        ObjectStoreSet osColl = domain.get_ObjectStores();
    
        // Get each object store.
        Iterator iterator = osColl.iterator();
        while (iterator.hasNext()) {
            // Get next object store.
            ObjectStore objStore = (ObjectStore) iterator.next();
    
            // Get the display name of the object store.
            String objStoreName = objStore.get_DisplayName();
            System.out.println("Object store name = " + objStoreName);
    
            // Create a document instance.
            Document doc = Factory.Document.createInstance(objStore, ClassNames.DOCUMENT);
    
            // Set document properties.
            doc.getProperties().putValue("DocumentTitle", "New Document via Java API");
            doc.set_MimeType("text/plain"); // if its your pdf then set mimetype for PDF
    
            doc.save(RefreshMode.NO_REFRESH);
    
            // Check in the document.
            doc.checkin(AutoClassify.DO_NOT_AUTO_CLASSIFY, CheckinType.MAJOR_VERSION);
            doc.save(RefreshMode.NO_REFRESH);
    
            // File the document.
            Folder folder = Factory.Folder.getInstance(objStore, ClassNames.FOLDER, new Id("{42A3FC29-D635-4C37-8C86-84BAC73FFA3F}")); // id of folder to which you want to store document.
            ReferentialContainmentRelationship rcr = folder.file(doc, AutoUniqueName.AUTO_UNIQUE, "New Document via Java API",
                    DefineSecurityParentage.DO_NOT_DEFINE_SECURITY_PARENTAGE);
            rcr.save(RefreshMode.NO_REFRESH);
        }
    }
    

    【讨论】:

      【解决方案2】:

      为了对 CMIS 进行故障排除,我通常按照下面为您编译的一般步骤进行操作。这么说,我强烈建议你为你的每一个操作创建单元测试,我保证这会为你节省大量的时间和精力

      1. 启动 Fiddler [a]。
      2. 启动 CMIS 工作台。 0.8.0 [b] 及更高版本自动代理 请求,至少在 Windows 7 上。
      3. 登录到存储库
      4. 可以选择导航到文件夹。
      5. 创建文档。将 Generate content 字段保留为 0 字节,如果 创建没有内容流的文档。选择电子邮件或其他类型。
      6. 转到 Fiddler 并找到 POST(状态码将为 201)。

      请求应具有 Content-Type:application/atom+xml;type=entry,以及 cmisra:object 元素中的属性 cmis:name 和 cmis:objectTypeid。

      一个。 http://www.fiddler2.com/fiddler2/ 湾。 http://chemistry.apache.org/java/download.html

      【讨论】: