【问题标题】:Java, Alfresco Web Service API and Unicode NamedValuesJava、Alfresco Web 服务 API 和 Unicode NamedValues
【发布时间】:2008-10-10 08:42:30
【问题描述】:

我正在使用 Java 访问 Alfresco 内容服务器,通过它的 Web 服务 API 将一些内容导入其中。内容应将一些 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"
} 

有人知道如何解决这个问题吗?

【问题讨论】:

    标签: java web-services unicode alfresco


    【解决方案1】:

    问题是我使用的 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

    【讨论】:

      【解决方案2】:

      解决它的最简单方法是我认为转义 cyrillicString,例如使用来自 Jakarta Commons 的 escapeXml,或者如果这还不够,则将整个字符串转换为 XML 实体。但从长远来看,Alfresco 应该是固定的,所以开票可能也是一个不错的选择。

      【讨论】:

        【解决方案3】:

        如果不查看您尝试保留的数据,很难判断这是否是 Alfresco 的错误。您使用的是哪个版本的 Alfresco?我在 Alfresco 的问题跟踪系统中发现了这个错误。具体来说,这是 2.1 社区,它似乎表明除了 UTF-8 之外的编码存在问题,因此它可能与您的问题有关,也可能与您的问题无关。

        调试此问题可以做的一件事是使用 Alfresco 的嵌入式 Java(服务器端)API 编写一个小测试,尝试保留相同的数据,然后查看是否仍然出现错误(可能不会SAXParseException 如果你这样做)。如果您没有收到错误,您就知道 Alfresco 的 Web 服务 API 中可能存在错误(不幸的是,它的支持不如嵌入式 Java 或 REST API 好),您可能想要添加评论我之前提到的错误报告,或者提交你自己的。如果您仍然在嵌入式 API 中遇到错误,那么问题仍然可能是您的代码或他们的代码。

        希望这至少有点帮助!

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-05-26
          • 2016-02-04
          • 2014-02-13
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多