Incompatibilidade de tipos WSDL com mapeamento client jax-rpc 1.6 netbeans

Pessoal, estou com o seguinte problema:

O WSDL de um serviço retorna o tipo ?DATETIME? para as datas, conforme o objeto recibo abaixo:

 <element name="dataCompra" nillable="true" type="xsd:dateTime" /> 
<element name="dataExp" nillable="true" type="xsd:dateTime" /> 
<element name="dataViagem" nillable="true" type="xsd:dateTime" /> 

Realizei o teste no SoapUI e vi que o retorno referente a essas datas difere do retorno do WSDL. Perceba que o retorno de DATACOMPRA é um Calendar e os demais é do tipo Date.
veja:

<dataCompra xsi:type=“xsd:dateTime”>2013-03-22T19:26:54.000Z</dataCompra>
<dataExp xsi:type=“xsd:date”>2013-03-26</dataExp>
<dataViagem xsi:type=“xsd:date”>2013-03-21</dataViagem>

Na geração do Webservice Cliente (JAX-RPC 1.6) o netbeans gera a classe de serialização para o objeto, com as datas do tipo Calendar:

Declaração de inicialização:

public void initialize(InternalTypeMappingRegistry registry) throws java.lang.Exception {
?
ns2_myns2_dateTime__java_util_Calendar_DateTimeCalendar_Serializer = (CombinedSerializer)registry.getSerializer(SOAPConstants.NS_SOAP_ENCODING, java.util.Calendar.class, s2_dateTime_TYPE_QNAME);
?
}

e no momento da atribuição de retorno para o objeto Member é gerado uma excessão de incompatibilidade de tipos:

public java.lang.Object doDeserialize(SOAPDeserializationState state, XMLReader reader, SOAPDeserializationContext context) throws java.lang.Exception {
com.store.tms.viafacil.Recibo instance = new com.store.tms.viafacil.Recibo();
com.store.tms.viafacil.Recibo_SOAPBuilder builder = null;
java.lang.Object member;
boolean isComplete = true;
javax.xml.namespace.QName elementName;

    ...

        elementName = reader.getName();
        if (reader.getState() == XMLReader.START) {
          if (elementName.equals(ns1_dataCompra_QNAME)) {

             member = ns2_myns2_dateTime__java_util_Calendar_DateTimeCalendar_Serializer.deserialize(ns1_dataCompra_QNAME, reader, context);

             instance.setDataCompra((java.util.Calendar)member);
             reader.nextElementContent();
          }
       }
      elementName = reader.getName();
        if (reader.getState() == XMLReader.START) {
           if (elementName.equals(ns1_dataExp_QNAME)) {

              member = ns2_myns2_dateTime__java_util_Calendar_DateTimeCalendar_Serializer.deserialize(ns1_dataExp_QNAME, reader, context);

              instance.setDataExp((java.util.Calendar)member);
              reader.nextElementContent();
        }
      }
      elementName = reader.getName();
      If (reader.getState() == XMLReader.START) {
        if (elementName.equals(ns1_dataViagem_QNAME)) {

            member = ns2_myns2_dateTime__java_util_Calendar_DateTimeCalendar_Serializer.deserialize(ns1_dataViagem_QNAME, reader, context);

            instance.setDataViagem((java.util.Calendar)member);
            reader.nextElementContent();
       }
    }

Excessão gerada no retorno do objeto XML.
Ou seja, se a excessão fosse gerada na instancia da classe, eu até faria um cast em setDataExp /setDataViagem, mas o erro é na linha anterior. Não consigo manipular o objeto de retorno antes de atribuir ao member.

java.rmi.RemoteException: Runtime exception; nested exception is:
unexpected element type: expected={http://www.w3.org/2001/XMLSchema}dateTime, actual={http://www.w3.org/2001/XMLSchema}date
at com.sun.xml.rpc.client.StreamingSender._handleRuntimeExceptionInSend(StreamingSender.java:331)
at com.sun.xml.rpc.client.StreamingSender._send(StreamingSender.java:313)
at com.store.tms.viafacil.ValePedagio_Stub.obterReciboViagem(ValePedagio_Stub.java:396)
at com.store.tms.viafacil.ViaFacilClienteWS.obterReciboViagem(ViaFacilClienteWS.java:235)
at com.store.tms.viafacil.ViaFacil.obterReciboViagem(ViaFacil.java:561)
at com.store.tms.webservice.TMSWS.obterReciboViagem(TMSWS.java:1134)
at ViaFacilValePedagio.main(ViaFacilValePedagio.java:56)
Caused by: unexpected element type: expected={http://www.w3.org/2001/XMLSchema}dateTime, actual={http://www.w3.org/2001/XMLSchema}date
at com.sun.xml.rpc.encoding.SerializerBase.verifyType(SerializerBase.java:128)
at com.sun.xml.rpc.encoding.SimpleTypeSerializer.deserialize(SimpleTypeSerializer.java:118)
at com.store.tms.viafacil.Recibo_SOAPSerializer.doDeserialize(Recibo_SOAPSerializer.java:144)
at com.sun.xml.rpc.encoding.ObjectSerializerBase.deserialize(ObjectSerializerBase.java:192)
at com.sun.xml.rpc.encoding.ReferenceableSerializerImpl.deserialize(ReferenceableSerializerImpl.java:155)
at com.store.tms.viafacil.ValePedagio_obterReciboViagem_ResponseStruct_SOAPSerializer.doDeserialize(ValePedagio_obterReciboViagem_ResponseStruct_SOAPSerializer.java:43)
at com.sun.xml.rpc.encoding.ObjectSerializerBase.deserialize(ObjectSerializerBase.java:192)
at com.sun.xml.rpc.encoding.ReferenceableSerializerImpl.deserialize(ReferenceableSerializerImpl.java:155)
at com.store.tms.viafacil.ValePedagio_Stub._deserialize_obterReciboViagem(ValePedagio_Stub.java:817)
at com.store.tms.viafacil.ValePedagio_Stub._readFirstBodyElement(ValePedagio_Stub.java:711)
at com.sun.xml.rpc.client.StreamingSender._send(StreamingSender.java:228)
… 5 more

Alguém já passou por essa situação?