Essa regra sinaliza referências a qualquer um dos seguintes tipos de esquema:
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
Esses tipos de esquema e seus tipos Java relacionados a JAX-RPC
java.util.String
e
java.util.Calendar
não são compatíveis com o JAX-WS.
A migração para JAX-WS e JAXB exigirá o uso
uso desses tipos de esquema com o tipo Java suportado
javax.xml.datatype.XMLGregorianCalendar
Em vez disso.
Um exemplo de uma classe JAX-RPC Calendar tem a seguinte aparência:
import java.util.Calendar;
import java.rmi.RemoteException;
public Calendar calculateShippingDate(Calendar requestedDate) throws RemoteException; {
// Defina a data como a data que nos foi enviada e adicione 7 dias.
requestedDate.addjava.util.Calendar.DAY_OF_MONTH, 7);
// . . .
return requestedDate;
}
Um exemplo de uma classe JAX-WS XMLGregorianCalendar tem a seguinte aparência:
import javax.xml.datatype.XMLGregorianCalendar;
importar javax.xml.datatype.DatatypeConfigurationException;
public XMLGregorianCalendar calculateShippingDate(
XMLGregorianCalendar requestedDate) {
try {
// Criar uma fábrica de tipos de dados.
DatatypeFactory df = DatatypeFactory.newInstance();
// Defina a data como a data que nos foi enviada e
adicione 7 dias.
duração = df.newDuration("P7D");
requestedDate.add(duration);
} catchDatatypeConfigurationException e) {
// TODO Bloco de captura gerado automaticamente
e.printStackTrace();
}
// . . .
return requestedDate;
}
Como você pode ver no exemplo acima, o parâmetro de entrada mudou do tipo
java.util.Calendar
para
javax.xml.datatype.XMLGregorianCalendar
.
Isso ocorre porque o WSDL especificou que esses parâmetros devem ser do tipo,
xsd:dateTime
o JAX-RPC mapeia esse tipo de dados para
java.util.Calendar
enquanto o JAX-WS e o JAXB o mapeiam para
javax.xml.datatype.XMLGregorianCalendar
.