Problema al enviar datos de diferentes tipos desde .Net a Java usando Web Services

Buen día a todos.
Es el primer tema que abro, esperando poder colaborar también con esta comunidad.
Mi situación es el siguiente: Tengo un Web Service hecho en Java que espera como parámetro un objeto que está constituido por otros objetos, además de tipos primitivos. He generado un cliente Java a partir del WSDL y todo marcha bien, llegan los valores de los campos y me genera la jerarquía de clases tal como la tengo en mi Web Service.
El problema surge cuando un programador desarrolla un cliente en .net usando C# o Visual Basic, a mi Web Service solo llegan los valores de tipo String. Yo hice también uno muy sencillo en C# y me he asegurado de llenar todos los campos de mi objeto, pero al llegar a mi Web Service he corroborado que solo me llegan los de tipo String.
Sé muy poco de .Net y no sé si el problema radique del lado de esa plataforma o del lado de Java. ¿Alguién me podría orientar sobre cuál puede ser una razón para este fallo? ¿Cómo podría solucionarlo?
En C# no se si existan clases Wrapper como en Java, pero vi que existe por ejemplo bool y Boolean. Al importar el WSDL en Visual Studio las clases se generan con bool, int, etc, ¿podría estar por ahí el problema?
Gracias de antemano por su tiempo y respuestas.
Saludos cordiales...

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de ezamudio

C#

en C# hay algunas clases que les llaman value types; los bool, int, decimal, etc son value types. Son un poquito similares a los tipos nativos en Java, lo principal es que no pueden ser nulos, ya que al declarar una variable de uno de esos tipos, se aloja espacio en el stack en vez del heap.

Por lo tanto en WS hechos en .NET cuando se usa un value type en algún campo, generalmente va a acompañado de una bandera para indicar si se ocupa o no ese valor, de modo que el marshaller sabe si se debe transmitir o no dicho campo. Entonces no sólo debes hacer por ejemplo datos.entero=5 sino que además datos.enteroSet=true (no recuerdo exactamente el sufijo que se le pone pero la cosa es que encuentras un atributo con el mismo nombre del que estás fijando pero con un sufijo "Set" o "Defined" o algo así y es de tipo bool).

A probar se ha dicho

Gracias ezamudio, muy valiosa la info que me compartes

En un instante haré algunas pruebas y comentaré que tal me fué.
Y si, como bien lo mencionas el sufijo es Specified que admite un bool.

Saludos...

Imagen de ezamudio

nos avisas

No te olvides de postear los resultados...

Prueba Superada

Efectivamente ezamudio.
Tal como mencionas, al establecer en el campo con sufijo Specified un valor de true, el campo que no tiene tal sufijo es enviado y recibido correctamente en el Web Service Java. Hice la prueba para un campo de tipo long y todo marcha bien, ahora me encargaré de hacer la prueba para todos los campos que requiero, pero me imagino que si funcionó para uno, funciona para todos.
Comentaré cualquier novedad que me encuentre en el camino de pruebas.
Muchas gracias por la ayuda...

@Julio Podrías poner un

@Julio

Podrías poner un fragmente de código con lo que hiciste? Specified=true o como ?

Saludos.

Hola, claro que si, con mucho

Hola, claro que si, con mucho gusto:

            solWSDTO.areaDestino = 24;
            solWSDTO.areaDestinoSpecified = true;

            solWSDTO.areaSolicitanteId = 10;
            solWSDTO.areaSolicitanteIdSpecified = true;

            solWSDTO.claveFuncionarioId = 23;
            solWSDTO.claveFuncionarioIdSpecified = true;

            solWSDTO.distritoId = 1;
            solWSDTO.distritoIdSpecified = true;

            solWSDTO.fechaLimite = fLimite;
            solWSDTO.fechaLimiteSpecified = true;

            solWSDTO.folioSolicitud = "FG/201200001";
            solWSDTO.nombreSolicitante = "Lucker Dawe Mitchel";
            solWSDTO.numeroCasoAsociado = "YUC/FG/XX/PGU/2012/AA-00001";

            solWSDTO.tribunalId = 2;
            solWSDTO.tribunalIdSpecified = true;

            solWSDTO.confInstitucionId = 1;
            solWSDTO.confInstitucionIdSpecified = true;

Lo anterior es una parte del código que modifique para mis pruebas. Lo que pude notar es que los campos String y los que son referencias a otras clases no tienen asociado un campo con sufijo Specified, como se puede ver en el fragmento anterior.
Gracias por el interés...