我正在使用Java通过Web服务API访问Alfresco内容服务器,以将一些内容导入其中。内容应具有一些NamedValue属性设置为UTF-8(西里尔字母)字符串。我不断收到Sax解析器异常:
org.xml.sax.SAXParseException: An invalid XML character (Unicode: 0x1b) was found in the element content of the document.
代码看起来像这样:
NamedValue[] namedValueProperties = new NamedValue[2];
namedValueProperties[0] = Utils.createNamedValue(Constants.PROP_NAME, name );
namedValueProperties[1] = Utils.createNamedValue("{my.custom.model}myProperty", cyrillicString);
CMLCreate create = new CMLCreate("1", parentReference, null, null, null, documentType, namedValueProperties);
CML cml = new CML();
cml.setCreate(new CMLCreate[]{create});
UpdateResult[] results = null;
try {
results = WebServiceFactory.getRepositoryService().update(cml);
} catch (...)
Here comes the "org.xml.sax.SAXParseException"
}
有谁知道如何解决这个问题?
最佳答案
问题是我使用的alfresco-web-service-client.jar
库来自2.9B发行版(我正在使用2.9B社区内容服务器),而依赖库bcprov-jdk15-136.jar
和xmlsec-1.4.0.jar
不够用(从2.1版本开始仍然是旧的)。我应该使用随2.9B发行版一起部署的bcprov-jdk15-137.jar
和xmlsec-1.4.1.jar
。