1

一周以来,我一直在尝试为以下要求创建骆驼路线。

  1. 使用请求键,路由查看文件网
  2. 如果 filenet 中有 key 文档 - 它将被检索并发送到 Portal
  3. 如果不是 - 请求将被发送到外部 WS,检索到的文档将存储在文件网中。
  4. 对于下一个相同的请求密钥,将根据元数据从文件网中检索文档并作为响应发送

以下是用于从文件网络中检索和存储的 2 个接口/骆驼路由

存储文件

from("activemq:queue:STORE_DOCUMENT_QUEUE")
.process(new Processor() {
    public void process(Exchange exchange) throws Exception {
        exchange.getIn().getHeaders().put(PropertyIds.CONTENT_STREAM_MIME_TYPE, "application/pdf; charset=UTF-8");
        exchange.getIn().getHeaders().put(PropertyIds.NAME, exchange.getIn().getHeader(Exchange.FILE_NAME));
        exchange.getIn().getHeaders().put(CamelCMISConstants.CMIS_FOLDER_PATH, "/TEST");
    }
})
.to("cmis://${header.cmisUrl}");

检索文档

from("activemq:queue:RETRIEVE_DOCUMENT_QUEUE")
.setBody(constant("SELECT * FROM cmis:document WHERE cmis:name LIKE '%requestkey%'"))
.to("cmis://${header.cmisUrl}")
.split(body())
.process(new Processor() {
    public void process(Exchange exchange) throws Exception {
        Map<String, Object> body = (Map<String, Object>)exchange.getIn().getBody();
        exchange.getIn().getHeaders().put(Exchange.FILE_NAME, body.get(PropertyIds.NAME));
        exchange.getIn().setBody(body.get(CamelCMISConstants.CAMEL_CMIS_CONTENT_STREAM));
    }
})
.to("file:src/test");

在上述路线中,没有/非常少的元数据信息...如果我需要按元数据搜索文档或使用元数据作为键将文档存储到文件网。示例:将具有以下键的文档存储为元数据并使用相同的 1. 身份号码 2. 文档类型 3. 接收日期进行检索

有人可以告诉我在骆驼交换中设置元数据或使用元数据来存储和检索文档吗?

4

0 回答 0