cancel
Showing results for 
Search instead for 
Did you mean: 

Speicherung eines Properties vom Typ datetime über Webservic

dmc
Champ on-the-rise
Champ on-the-rise
Hallo zusammen,

ich habe ein custom typ mit verschiedenen Properties angelegt, unter anderem:


<property name="custom:mydate">
    <title>My Date</title>
    <type>d:datetime</type>
</property>

Wenn ich über Webservice versuche einen Node mit diesem Property zu erzeugen bekomme ich folgende Fehlermeldung:

Failed to convert date Thu Apr 19 15:17:08 CEST 2007 to string

Im Source Code sieht es folgendermassen aus:

Utils.createNamedValue(PROP_SENT, "Thu Apr 19 15:17:08 CEST 2007")

Utils.createNamedValue(PROP_SENT, "Thu Apr 19 15:17:08 CEST 2007")

String sentDate = ISO8601DateFormat.getInstance().format(message.getSentDate());
propertyList.add(Utils.createNamedValue(PROP_SENT, sentDate));

brachte leider keinen Erfolg.

Weiss von euch jemand Rat ?

Grüsse,
devylon
2 REPLIES 2

dmc
Champ on-the-rise
Champ on-the-rise
Meines Erachtens liegt das Problem darin, dass per SOAP-Nachricht ein Datums als String an den Alfresco-Webservice übertragen wird. Die Web Service-Implementierung deserialisiert den String wieder in ein Date, *bevor* ein entsprechendes CMLCreate-Objekt generiert wird. Dieses CMLCreate-Objekt wird mit Hilfe der Klasse org.alfresco.repo.webservice.Utils und der Methode createNamedValue erzeugt.

Dort steckt das Problem: in Zeile 247 der o.g. Klasse wird jeder Wert eines Key-/Value-Paares (also Property-Name und Property-Wert) über die Methode toString() in einen String gewandelt, somit wird bei einem Date-Objekt das Default-Locale für die Umwandlung benutzt, und kein ISO8601.konformer Mechanismus.

Die Fehlermeldung "Failed to convert date … to string" ist übrigens etwas irreführend. Sie wird in der Klasse org.alfresco.service.cmr.repository.datatype.Defau ltTypeConverter in Zeile 190 erzeugt und zwar, weil ein String nicht in ein ISO8601-kompatibles Datumsobjekt konvertiert werden konnte, also gerade andersherum wie die obige Fehlermeldung uns glauben machen möchte.

Bei den Zeilenangaben gehe ich übrigens vom Quellcode der Version 2.0 aus.


Hoffe, das hat geholfen!
drhilarius

pfrauenk_8077
Champ in-the-making
Champ in-the-making
Schau mal hier, http://forums.alfresco.com/en/viewtopic.php?f=27&t=12080&p=39978&hilit=mm%3Ass.sssZ
Der String 2008-07-16T00:01:00.000Z müsste funktionieren, ansonsten liegt es nicht am Format des Datums…
Hoffe das hilft…
Getting started

Tags


Find what you came for

We want to make your experience in Hyland Connect as valuable as possible, so we put together some helpful links.