Escribí un servicio web JAX-WS en Java generando un WSDL y clases desde un esquema XML.Las clases generadas de referencia del servicio web .NET no funcionan con dateTime tipo
Estoy agregando el servicio como referencia web en Visual Studio, para usarlo con una aplicación de cliente C# .NET.
El esquema XML original utiliza un par de tipos de fecha/hora: xs: date y xs: dateTime para algunos de los elementos.
Mi problema es que mi tipo 'dateTime' no funciona correctamente. Se convierte en un objeto .NET DateTime (correctamente) en las clases generadas (producidas por XMLSerializer en Visual Studio 2010), y luego puedo crear mi propio objeto DateTime y configurar el DateTime en una de estas clases. Sin embargo, al enviar la solicitud al servidor, la aplicación cliente envía un valor nulo en lugar del objeto DateTime al que lo configuré. Así que supongo que no se está serializando correctamente.
No tengo el mismo problema con el tipo 'fecha', que serializa/deserializa bien.
me di cuenta de algo que podría ser el problema, pero no está seguro:
El objeto DateTime en la clase generada tiene el siguiente aspecto: [System.Xml.Serialization.XmlElementAttribute (Orden = 10)] sistema público .DateTime MyDateTime {...}
mientras que el objeto de fecha en la clase generada tiene el siguiente aspecto: [System.Xml.Serialization.XmlElementAttribute (tipo de datos = "fecha", Orden = 12)] System.DateTime pública MyDate {...}
Entonces, hay algo de información adicional en el objeto de fecha - DataType = "date", pero no hay DateType para el objeto dateTime. ¿Podría ser este el problema? Si es así, ¿por qué no está generando las clases correctamente?
Gracias por cualquier ayuda
Nota: el problema de dateTime es solo una cuestión de sentido único. El problema ocurre cuando la aplicación del cliente (.NET) envía un objeto de solicitud con un elemento dateTime al servidor y el servidor recibe un valor nulo. La otra forma parece estar bien (si el servidor envía un objeto de respuesta con un elemento dateTime, el cliente recibe la respuesta con el objeto DateTime con la información correcta de fecha/hora) – Josh
Asegúrese absolutamente de que está configurando un Valor de fecha y hora válido en la solicitud. A continuación, valide su solicitud de salida al servidor ejecutando Fiddler en su sistema cliente y verificando la solicitud. Por favor regresa con tus hallazgos. – kroonwijk
Tuve un problema similar. En mi caso, el miembro dateTime se saltó en xml que se envió al servidor. Estaba relacionado con el hecho de que wsdl contenía minOccurs = "0". Como resultado, el cliente generado de Visual contiene indicadores de que este campo está 'especificado'. Debo haber agregado: fieldNameSpedified = true; para cada campo. Puede ser también tu caso. – bart