我正在使用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.jarxmlsec-1.4.0.jar不够用(从2.1版本开始仍然是旧的)。我应该使用随2.9B发行版一起部署的bcprov-jdk15-137.jarxmlsec-1.4.1.jar

09-27 12:13