Ne pas utiliser les types de données JAX-RPC Calendar et autres Date

Cette règle signale les références à l'un des types de schéma suivants : http://www.w3.org/2001/XMLSchema:duration, http://www.w3.org/2001/XMLSchema:dateTime, http://www.w3.org/2001/XMLSchema:time, http://www.w3.org/2001/XMLSchema:date, http://www.w3.org/2001/XMLSchema:gYearMonth, http://www.w3.org/2001/XMLSchema:gYear, NAMESPACE:gMonth, http://www.w3.org/2001/XMLSchema:gDay

Ces types de schéma et leurs types Java liés à JAX-RPC java.util.String et java.util.Calendar ne sont pas prises en charge par JAX-WS.
La migration vers JAX-WS et JAXB nécessitera l'utilisation de ces types de schémas avec les types Java pris en charge l'utilisation de ces types de schémas avec les types Java pris en charge javax.xml.datatype.XMLGregorianCalendar à la place.

Un exemple de classe de calendrier JAX-RPC ressemble à ceci :

import java.util.Calendar;
import java.rmi.RemoteException;
    
public Calendar calculateShippingDate(Calendar requestedDate) throws RemoteException; {
    // Réglez la date sur celle qui nous a été envoyée et ajoutez 7 jours.
    requestedDate.addjava.util.Calendar.DAY_OF_MONTH, 7) ;
    // . . .
    
    return requestedDate;     
    }

Un exemple de classe JAX-WS XMLGregorianCalendar ressemble à ceci :

import javax.xml.datatype.XMLGregorianCalendar;
import javax.xml.datatype.DatatypeConfigurationException;
    
public XMLGregorianCalendar calculateShippingDate(
    XMLGregorianCalendar requestedDate) {
    try {
       // Créer une usine de types de données.
        DatatypeFactory df = DatatypeFactory.newInstance() ;
       // Fixez la date à celle qui nous a été envoyée et ajoutez 7 jours et ajoutez 7 jours.
       Duration = df.newDuration("P7D") ;
        requestedDate.add(duration) ;
   } catchDatatypeConfigurationException e) {
       // TODO Bloc catch généré automatiquement
        e.printStackTrace();
       }
       // . . .
    
        return requestedDate;
    }

Comme vous pouvez le voir dans l'exemple ci-dessus, le paramètre d'entrée est passé du type java.util.Calendar à javax.xml.datatype.XMLGregorianCalendar .
Cela s'explique par le fait que le WSDL a spécifié que ces paramètres devaient être de type, xsd:dateTime jAX-RPC fait correspondre ce type de données à java.util.Calendar tandis que JAX-WS et JAXB le font correspondre à javax.xml.datatype.XMLGregorianCalendar .