Frage

Ich bin mit Java für den Zugriff auf Alfresco Content-Server über es für den Import einige Inhalte in das Web-Service-API ist. Inhalt sollte einige NamedValue Eigenschaften auf UTF-8 (kyrillisch) string haben. Ich halte die Sax-Parser Ausnahme bekommen:

org.xml.sax.SAXParseException: An invalid XML character (Unicode: 0x1b) was found in the element content of the document.

Der Code sieht etwa so aus:

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"
} 

Wer weiß, wie dieses Problem zu lösen?

War es hilfreich?

Lösung

Das Problem war, dass im Freien-web-service-client.jar Bibliothek verwenden ich von 2.9B Verteilung war (I 2.9B Community Content-Server am Schlagen), und die Abhängigkeit Libs bcprov-jdk15-136.jar und xmlsec-1.4. 0.jar waren nicht ausreichend (alt von 2,1 dist blieb). Ich sollte bcprov-jdk15-137.jar und xmlsec-1.4.1.jar, die eingesetzt werden zusammen mit 2.9B Verteilung verwendet haben.

Andere Tipps

Der einfachste Weg, um es ist, ich denke, cyrillicString zu entkommen, zum Beispiel mit escapeXml von Jakarta Commons oder durch die gesamte Zeichenfolge zu XML-Entitäten konvertieren, wenn es nicht genug ist. Aber auf lange Sicht sollte Alfresco befestigt werden, so dass ein Ticket öffnen auch eine gute Wahl sein kann.

Es ist ein wenig schwer zu sagen, ob dies ein Problem mit Alfresco ist, ohne dass die Daten zu sehen Sie versuchen zu bestehen. Welche Version von Alfresco verwenden Sie? Ich fand diesen Fehler in Alfresco Issue-Tracking-System. Insbesondere ist dies mit 2.1 Community, und es scheint, dass es vorzuschlagen sind Probleme mit anderen kodieren als UTF-8, so kann es oder auch nicht, um Ihr Problem in Beziehung gesetzt werden.

Eine Sache, die Sie tun können, dieses Problem zu debuggen ist ein kleiner Test mit Alfresco Embedded Java (Server-Seite) API zu schreiben, die gleichen Daten zu bestehen versucht, und sehen Sie, wenn Sie noch einen Fehler (es wäre wahrscheinlich nicht SAXParseException wenn Sie das tun). Wenn Sie nicht einen Fehler, wissen Sie, dass es in Alfresco Web-Service-API wahrscheinlich ein Fehler ist (die leider fast nicht so gut wie ihre Embedded Java unterstützt oder REST APIs), und Sie können einen Kommentar über hinzufügen möchten der Fehlerbericht erwähnte ich bereits, oder Ihre eigene Datei. Wenn Sie noch einen Fehler mit dem Embedded-API bekommen, dann könnte es noch entweder Code oder ihnen gehören das ist das Problem.

Ich hoffe, das war zumindest ein wenig hilfreich!

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top