Pessoal, boa tarde. Estou com problema na utilização de campos Date com Web Service. Tenho uma aplicação que usa o rich:calendar para pegar um campo data. Uso também o JSF na aplicação. Este campo deve ser passado via Web Service para uma pesquisa em banco. Porém o Web Service trabalha com XMLGregorianCalendar, não é mesmo? Aí estou sempre tendo erro ou de cast ou de parse. Não estou conseguindo resolver este problema. Qual é o método de se trabalhar neste caso? Quando devo fazer a conversão do Data para XMLGregorianCalendar? Ou devo trabalhar de alguma outra forma? Alguém pode me ajudar?
Você pode tentar enviar uma String e o cliente pegaria essa String e recuperaria uma date
E
esdmorais
Olá Carlos,
Eu tive um problema muito parecido com o seu. Mas o meu campo era passado para um bean normal mesmo, que gravava no banco através de um DAO.
Eu resolvi passando um formato para a data (no caso, dd/MM/yyyy), porque ele não conseguia gravar no banco sem eu definir o formato.
Dê uma olhada no trecho do código:
<rich:calendarid="data"firstWeekDay="0"showWeeksBar="false"showFooter="false"converter="javax.faces.DateTime"datePattern="dd/MM/yyyy"enableManualInput="true"locale="#{localeBean.locale}"value="#{bean.data}"showApplyButton="false"required="true"rendered="#{permissaoBean.escrita and permissaoBean.modoEdicao}"/>
Espero que tenha te ajudado.
C
cmendes
Vc está dizendo para eu trafegar com a data no WS como String?
O
otaviojava
É apenas uma solução, existem vários exemplos de transformar String em data.
Você pode olhar aqui no guj mesmo.
Aí eu pego estas datas no meu bean e envio via WS para que seja feito uma consulta usando estas datas.
private Date dataInicial;
private Date dataFinal;
...
ListaUltimoService servico = new ListaUltimoService();
ListaUltimo port = servico.getListaUltimoPort();
eventos = port.listaArray(dataInicial, dataFinal);
Aí eu tenho o erro:
SEVERE: java.lang.ClassCastException: java.util.Date cannot be cast to javax.xml.datatype.XMLGregorianCalendar
Aí eu pego estas datas no meu bean e envio via WS para que seja feito uma consulta usando estas datas.
private Date dataInicial;
private Date dataFinal;
...
ListaUltimoService servico = new ListaUltimoService();
ListaUltimo port = servico.getListaUltimoPort();
eventos = port.listaArray(dataInicial, dataFinal);
Aí eu tenho o erro:
SEVERE: java.lang.ClassCastException: java.util.Date cannot be cast to javax.xml.datatype.XMLGregorianCalendar
Passa o converter do XMLGregorianCalendar no rich:calendar para ver se funciona