尝试将xmi反序列化为CAS对象时出现XCASParsingException

时间:2017-12-05 12:35:21

标签: java ruta

我已经从Java运行Ruta脚本并将生成的CAS对象转换为xmi文件,如下所示;

FileOutputStream fileOutputStream = new FileOutputStream(outputXmiFile);
XmiCasSerializer.serialize(cas, fileOutputStream);

当我尝试将其转换回CAS对象(在另一台服务器上)时,如下所示;

FileInputStream fileInputStream = new FileInputStream(xmiFile);
XmlCasDeserializer.deserialize(fileInputStream, cas);

我得到以下例外;

XCASParsingException: Error parsing XCAS or XMI-CAS from source <unknown> at line <unknown>, column <unknown>: unknown type: NULL.

异常的快照。 enter image description here

2 个答案:

答案 0 :(得分:1)

呀谢谢!它奏效了!

import org.apache.uima.util.CasIOUtils;

CAS到XMI

CasIOUtils.save(cas, fileOutputStream, SerialFormat.XMI);

XMI到CAS

CasIOUtils.load(fileInputStream, cas);

答案 1 :(得分:0)

当您的XMI文件确实有问题时,就会发生此问题。

提示: 打开XMI文件的另一种方法可能是使用XmiReader

File xmlFile = new File("/path/to/file.xmi");
CollectionReaderDescription description = createReaderDescription(
   XmiReader.class,
   XmiReader.PARAM_SOURCE_LOCATION, xmlFile
);