Converter XMLGregorianCalendar para Date - WSDL

4 respostas
T

Prezados, estou tentar converter o XMLGregorianCalendar para Date ou Calendar no momento em que o Java gerar as classes através de ‘jaxb:globalBindings’, porém nenhuma alteração que faço é efetiva.

Meu arquivo WSDL:
arquivo.wsdl (10,2 KB)

Classe Converter:

public class XsdDateTimeConverter {

public static Date unmarshal(String dateTime) {
    return DatatypeConverter.parseDate(dateTime).getTime();
}

public static String marshalDate(Date date) {
    final GregorianCalendar calendar = new GregorianCalendar();
    calendar.setTime(date);
    return DatatypeConverter.printDate(calendar);
}

public static String marshalDateTime(Date dateTime) {
    final GregorianCalendar calendar = new GregorianCalendar();
    calendar.setTime(dateTime);
    return DatatypeConverter.printDateTime(calendar);
}

}

O que estou fazendo de errado?

4 Respostas

P

Retira o globalBindings do wsdl e coloca num ficheiro de bindings (xjb).

T

Li isso em vários lugares, mas, perdoe a minha ignorância nessa parte já que não é a minha área, não consegui descobrir qual local colocar esse bendito arquivo.

P

No mesmo sítio do wsdl…
http://docs.oracle.com/cd/E17802_01/webservices/webservices/docs/1.5/tutorial/doc/JAXBUsing4.html

T

Removi o globalBindings do wsdl e criei o arquivo .xjb na mesma pasta do WSDL (Projeto\src\conf\xml-resources\web-service-references\arquivo\wsdl).

O conteúdo o arquivo citado é:

<?xml version="1.0" encoding="UTF-8"?>
<bindings xmlns="http://java.sun.com/xml/ns/jaxb" version="2.0"
 xmlns:xs="http://www.w3.org/2001/XMLSchema">
 <javaType name="java.util.Date" xmlType="xs:dateTime"
                      parseMethod="br.com.gs.integrador.util.XsdDateTimeConverter.unmarshal"
                      printMethod="br.com.gs.integrador.util.XsdDateTimeConverter.marshalDateTime" />
            <javaType name="java.util.Date" xmlType="xs:date"
                      parseMethod="br.com.gs.integrador.util.XsdDateTimeConverter.unmarshal"
                      printMethod="br.com.gs.integrador.util.XsdDateTimeConverter.marshalDate" />		  
  </globalBindings>

Através do Netbeans, clico em Atualizar (no arquivo WSDL), as classes são geradas, porém os atributos continuam sendo XMLGregorianCalendar.

Criado 18 de dezembro de 2015
Ultima resposta 18 de dez. de 2015
Respostas 4
Participantes 2