Je dois consommer un Webservice Java avec des éléments de type Date et Heure.Consommation de Java Webservice avec des éléments Date et Heure dans WCF
Exemple du wsdl:
...
<xsd:element name="fromTime" nillable="true" type="xsd:time" />
<xsd:element name="dateOfInspection" type="xsd:date" />
...
Lors de la consommation Webservice via Ajouter un service de référence Visual Studio 2008 génère le code suivant:
[System.Xml.Serialization.SoapElementAttribute(DataType="time", IsNullable=true)]
public System.Nullable<System.DateTime> fromTime { ... }
[System.Xml.Serialization.SoapElementAttribute(DataType="date")]
public System.DateTime dateOfInspection { ... }
Envoi d'un résultat de message dans une erreur de réflexion avec le innerException : '
' time 'est une valeur non valide pour la propriété SoapElementAttribute.DataType. La propriété peut uniquement être spécifiée pour les types primitifs.
Lors de la suppression des attributs DataType = "time" et DataType = "date" tout semble fonctionner. Mais modifier le code généré est un anti-pattern. Alors, y a-t-il un autre moyen de faire fonctionner ça?
Mise à jour:
Le problème existe que si les éléments de date ou d'heure sont annulable!
J'ai signalé un bogue sur le site de connexion Microsofts. Si vous avez le même problème que vous pouvez voter it up ici: https://connect.microsoft.com/VisualStudio/feedback/details/534453/consuming-java-webservice-with-nullable-date-and-time-elements-in-wcf-generates-invalid-datatype-attributes
Mise à jour 2:
Microsoft a confirmé que c'est un bug et unlikly à fixer.
Mise à jour 3:
J'ai vérifié avec VS2010 et il génère toujours le mauvais code. Btw, nous avons fini par modifier le code généré ...
http://www.headsphere.net/2007/11/java-wcf-datetime-interop.html? –
Cela semble être un bug. Veuillez le signaler à l'adresse http://connect.microsoft.com/visualstudio/. Ensuite, postez l'URL du rapport de bogue ici, afin que les autres puissent voter dessus. –
Avez-vous essayé de nouveau dans Visual Studio 2010? Si oui est le même bug toujours là? (Je demande parce que mon employeur devient fou avec WCF ces jours-ci ... –