0

設置存儲在filenet中的文檔的文檔類的簡單測試在camel-cmis 2.16.2中有效。下面是路由Camel-cmis - 元數據設置錯誤

from("file://C:/Target/DMS/").process(new Processor() { 
      @Override 
      public void process(Exchange e) throws Exception { 
       e.getIn().getHeaders().put(PropertyIds.CONTENT_STREAM_MIME_TYPE, "application/pdf; charset=UTF-8"); 
       e.getIn().getHeaders().put(CamelCMISConstants.CMIS_FOLDER_PATH, "/Test"); 
       e.getIn().getHeaders().put("cmis:objectTypeId", "doc_Test"); 
       e.getIn().getHeaders().put(PropertyIds.NAME, e.getIn().getHeader(Exchange.FILE_NAME)); 
      } 
     }).to("cmis://http://test:9080/fncmis/resources/Service?repositoryId=TEST_REPO&username=TEST&password=RAW(TEST)"); 

當我檢查文檔類文件存儲在IBM FileNet的 - 我可以看到文檔類作爲測試(符號名:doc_Test)。但是,當我再補充一點類的參數值ATLEAST一個像下面

e.getOut().getHeaders().put("prp_Field1","TestValue1"); 

即時得到NoSuchHeaderException的參數「CMIS:名字」,我已經設置,你可以看到上面的路線。這是設置元數據參數的正確方法嗎?

+1

查看關於使用getOut VS getIn此FAQ:http://camel.apache.org/using-getin-or-getout-methods-on-exchange.html –

回答

0

以下存儲工作路線。決定定製類,字段&數據類型,創建基於該&的元數據,然後在發送到cmis uri(存儲)之前,在駱駝標頭中設置相同的字段名稱。

ObjectTypeId - Customized class name 
CMIS_FOLDER_PATH - filenet folder path inside repository 
NAME - File name to be stored 


from("file://C:/Target/DMS/").process(new Processor() { 
      @Override 
      public void process(Exchange e) throws Exception { 
       e.getIn().getHeaders().put(CamelCMISConstants.CMIS_FOLDER_PATH, "/TEST"); 
       e.getIn().getHeaders().put("cmis:objectTypeId", "doc_Test"); 
       e.getIn().getHeaders().put(PropertyIds.NAME, fileName + ".pdf"); 
       e.getOut().getHeaders().put("prp_Field1","TestValue1"); 
       e.getOut().getHeaders().put("prp_Field2","TestValue2"); 
       e.getOut().getHeaders().put("prp_Field3","TestValue3"); 
      } 
     }).to("cmis://http://test:9080/fncmis/resources/Service?repositoryId=TEST_REPO&username=TEST&password=RAW(TEST)"); 

希望它可以幫助別人..