XStream, convertendo datas

3 respostas
R

Opa pessoal

Estou tentando converter um XML enviado pelo laszlo para o servidor, em um objeto de uma classe java previamente estabelecida utilizando o XStream.

O problema é o seguinte…

Meu campo de data na aplicação, recebe datas no formato dd/mm/yyyy, e neste formato o XStream não consegue converter este dado para um objeto Date.

EU vi o tutorial do XStream sobre date conversion mais não entendi como eu converto este tipo de data atravéz do tutorial =/

O que é preciso para eu converter esta data ? (Se alguem tiver trexos de código iria ajudar muiiito)

Obrigado

3 Respostas

E

opa blz?

bom isso vc precisa adicionar a lista de conversores
e setar a conversão de datas para o respectivo formato
com isso ele vai converter para o objeto date… :wink:

nos projetos blank aqui do portal java tem
esse conversor imbutido

new DateConverter( "dd/MM/yyyy", new String[0] )

isso vc tem que adicionar num List e depois relacionar no objeto
XStream de conversão, dai resolte :wink:

R

Estou vendo aqui no laszlo agenda…

Você adicionou os DateConverters a uma lista que é passada ao seu objeto XMLOUT…

Mais dentro do XMLOUT você faz chamadas de XSTREAM.registerConverter(myConverter) para cada conversor presente na lista certo ?

Portanto, se eu fizesse no meu código apenas algo do tipo:

XSTREAM.registerConverter(new DateConverter( "dd/MM/yyyy", new String[0] ));

Antes da chamada do método fromXml, não deveria funcionar ?
Pois no caso, não funcionou =/, ele continua dando o mesmo erro de antes =/

No caso XMLOUT é para o caminho contrario, mais na classe XMLIN também ocorre o mesmo procedimento…

Adicionando o DateConverter diretamente ao xstream atravéz da chamada do método registerConverter, gera a seguinte exception:

FATAL (com.opensymphony.xwork.config.providers.XmlConfigurationProvider:126) - Could not load XWork configuration file, failing org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'usuarioPage' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Instantiation of bean failed; nested exception is java.lang.NoClassDefFoundError: com/thoughtworks/xstream/converters/SingleValueConverter Caused by: java.lang.NoClassDefFoundError: com/thoughtworks/xstream/converters/SingleValueConverter at java.lang.Class.getDeclaredConstructors0(Native Method) at java.lang.Class.privateGetDeclaredConstructors(Class.java:2328) at java.lang.Class.getConstructor0(Class.java:2640) at java.lang.Class.getDeclaredConstructor(Class.java:1953) at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:60) at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:45) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:701) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:687) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:388) at org.springframework.beans.factory.support.AbstractBeanFactory$2.getObject(AbstractBeanFactory.java:288) at org.springframework.web.context.request.AbstractRequestAttributesScope.get(AbstractRequestAttributesScope.java:43) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:284) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:161) at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:642) at com.opensymphony.xwork.spring.SpringObjectFactory.getClassInstance(SpringObjectFactory.java:168) at com.opensymphony.xwork.config.providers.XmlConfigurationProvider.verifyAction(XmlConfigurationProvider.java:196) at com.opensymphony.xwork.config.providers.XmlConfigurationProvider.addAction(XmlConfigurationProvider.java:166) at com.opensymphony.xwork.config.providers.XmlConfigurationProvider.addPackage(XmlConfigurationProvider.java:245) at com.opensymphony.xwork.config.providers.XmlConfigurationProvider.loadConfigurationFile(XmlConfigurationProvider.java:662) at com.opensymphony.xwork.config.providers.XmlConfigurationProvider.init(XmlConfigurationProvider.java:124) at com.opensymphony.xwork.config.impl.DefaultConfiguration.reload(DefaultConfiguration.java:80) at com.opensymphony.xwork.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:52) at com.opensymphony.xwork.DefaultActionProxy.<init>(DefaultActionProxy.java:57) at com.opensymphony.xwork.DefaultActionProxyFactory.createActionProxy(DefaultActionProxyFactory.java:46) at com.opensymphony.webwork.dispatcher.DispatcherUtils.serviceAction(DispatcherUtils.java:193) at com.opensymphony.webwork.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:184) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744) at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527) at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684) at java.lang.Thread.run(Thread.java:595)

Que no caso não é a mesma que estava sendo lançada antes. Antes apenas informava que o XStream não havia conseguido converter para o objeto Date…

R

ja consegui converter o xml em objeto…

O problema era nos meus JARS e não no código =P

Mais valeu pelas dicas ae que ajudo bastante =]

Criado 5 de fevereiro de 2007
Ultima resposta 6 de fev. de 2007
Respostas 3
Participantes 2