Vraptor + Rest + LocalDateTime[RESOLVIDO]

não existem caused by’s na stacktrace?

ou pelo menos não aparece alguma classe sua nela?

Lucas!

Na minha aplicação web eu uso tudo via json, qual o melhor para fazer a comunicação do desktop via xml ou json, porque eu tenho um serialization json e quando eu faço um post
de LocalDateTime funciona perfeitamente, o que eu teria que fazer para usar json

nessa parte aqui:?


 restfulie = Restfulie.custom();
        restfulie.getMediaTypes().register(new XmlMediaType().withTypes(Grupo.class, Produto.class, Item.class, Versaotabelas.class));

eu preciso dessa anotação nas classes se for usar json:

@XStreamAlias("versaopdvs")

A minha CustomXStreamJSONSerialization que funciona na parte web

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package br.com.coliseu.util;


import javax.servlet.http.HttpServletResponse;

import br.com.caelum.vraptor.interceptor.TypeNameExtractor;
import br.com.caelum.vraptor.ioc.Component;
import br.com.caelum.vraptor.serialization.ProxyInitializer;
import br.com.caelum.vraptor.serialization.xstream.XStreamBuilder;
import br.com.caelum.vraptor.serialization.xstream.XStreamJSONSerialization;

import com.thoughtworks.xstream.XStream;


/**
 * Classe utlizada para converter data do tipo date para LocalDate, quando
 * chama as funções json
 * @author valde
// */



@Component
public class CustomXStreamJSONSerialization extends XStreamJSONSerialization {

  

    public CustomXStreamJSONSerialization(HttpServletResponse response,
			TypeNameExtractor extractor, ProxyInitializer initializer, XStreamBuilder builder) {
		super(response, extractor, initializer, builder);
	}

	@Override
    protected XStream getXStream() {
        XStream stream = super.getXStream();
        stream.registerConverter(new LocalDateConverter());
        stream.registerConverter(new LocalDateTimeConverter());
        return stream;
    }
	
	
}

troca o new XmlMediaType por new JsonMediaType…

ou use xml do lado do vraptor também

Lucas eu sei que estou sendo chato cara, mas se por gentileza puder me dar uma ajuda, vou te explicar como esta o meu projeto.

Obs: estou fazendo novamente tudo em xml.

se eu mando um objeto que tem Atributo LocalDateTime da apl. web para desktop vai de boa.

quando eu mando um objeto do desktop para web via post, que não tem objeto LocalDateTime vai de boa. se for com LocalDateTime preenchido dá esse pau:

14:17:10,275 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/CP]] (http--127.0.0.1-8080-1) Unhandled exception occurred whilst decorating page: com.thoughtworks.xstream.io.StreamException:  : Element type "org.joda.time.chrono.ISOChronology" must be followed by either attribute specifications, ">" or "/>".
	at com.thoughtworks.xstream.io.xml.DomDriver.createReader(DomDriver.java:86) [xstream-1.3.1.jar:]
	at com.thoughtworks.xstream.io.xml.DomDriver.createReader(DomDriver.java:70) [xstream-1.3.1.jar:]
	at com.thoughtworks.xstream.XStream.fromXML(XStream.java:861) [xstream-1.3.1.jar:]
	at br.com.caelum.vraptor.deserialization.XStreamXMLDeserializer.deserialize(XStreamXMLDeserializer.java:58) [vraptor-3.4.1.jar:]
	at br.com.caelum.vraptor.interceptor.DeserializingInterceptor.intercept(DeserializingInterceptor.java:87) [vraptor-3.4.1.jar:]
	at br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:59) [vraptor-3.4.1.jar:]
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54) [vraptor-3.4.1.jar:]
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56) [vraptor-3.4.1.jar:]
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54) [vraptor-3.4.1.jar:]
	at br.com.caelum.vraptor.interceptor.InstantiateInterceptor.intercept(InstantiateInterceptor.java:48) [vraptor-3.4.1.jar:]
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54) [vraptor-3.4.1.jar:]
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54) [vraptor-3.4.1.jar:]
	at br.com.caelum.vraptor.interceptor.ParametersInstantiatorInterceptor.intercept(ParametersInstantiatorInterceptor.java:93) [vraptor-3.4.1.jar:]
	at br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:59) [vraptor-3.4.1.jar:]
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54) [vraptor-3.4.1.jar:]
	at br.com.caelum.vraptor.interceptor.FlashInterceptor.intercept(FlashInterceptor.java:83) [vraptor-3.4.1.jar:]
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54) [vraptor-3.4.1.jar:]
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54) [vraptor-3.4.1.jar:]
	at br.com.caelum.vraptor.interceptor.ExceptionHandlerInterceptor.intercept(ExceptionHandlerInterceptor.java:71) [vraptor-3.4.1.jar:]
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54) [vraptor-3.4.1.jar:]
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54) [vraptor-3.4.1.jar:]
	at br.com.caelum.vraptor.interceptor.ResourceLookupInterceptor.intercept(ResourceLookupInterceptor.java:69) [vraptor-3.4.1.jar:]
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54) [vraptor-3.4.1.jar:]
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54) [vraptor-3.4.1.jar:]
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56) [vraptor-3.4.1.jar:]
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54) [vraptor-3.4.1.jar:]
	at br.com.caelum.vraptor.core.EnhancedRequestExecution.execute(EnhancedRequestExecution.java:44) [vraptor-3.4.1.jar:]
	at br.com.caelum.vraptor.VRaptor$1.insideRequest(VRaptor.java:91) [vraptor-3.4.1.jar:]
	at br.com.caelum.vraptor.ioc.spring.SpringProvider.provideForRequest(SpringProvider.java:58) [vraptor-3.4.1.jar:]
	at br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:88) [vraptor-3.4.1.jar:]
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:280) [jbossweb-7.0.10.Final.jar:]
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248) [jbossweb-7.0.10.Final.jar:]
	at com.opensymphony.sitemesh.webapp.SiteMeshFilter.obtainContent(SiteMeshFilter.java:129) [sitemesh-2.4.1.jar:]
	at com.opensymphony.sitemesh.webapp.SiteMeshFilter.doFilter(SiteMeshFilter.java:77) [sitemesh-2.4.1.jar:]
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:280) [jbossweb-7.0.10.Final.jar:]
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248) [jbossweb-7.0.10.Final.jar:]
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275) [jbossweb-7.0.10.Final.jar:]
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161) [jbossweb-7.0.10.Final.jar:]
	at org.jboss.as.jpa.interceptor.WebNonTxEmCloserValve.invoke(WebNonTxEmCloserValve.java:50) [jboss-as-jpa-7.1.0.Final.jar:7.1.0.Final]
	at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:154) [jboss-as-web-7.1.0.Final.jar:7.1.0.Final]
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:155) [jbossweb-7.0.10.Final.jar:]
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) [jbossweb-7.0.10.Final.jar:]
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) [jbossweb-7.0.10.Final.jar:]
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:368) [jbossweb-7.0.10.Final.jar:]
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877) [jbossweb-7.0.10.Final.jar:]
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:671) [jbossweb-7.0.10.Final.jar:]
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:930) [jbossweb-7.0.10.Final.jar:]
	at java.lang.Thread.run(Thread.java:722) [rt.jar:1.7.0_03]
Caused by: org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1782; Element type "org.joda.time.chrono.ISOChronology" must be followed by either attribute specifications, ">" or "/>".
	at org.apache.xerces.parsers.DOMParser.parse(DOMParser.java:244)
	at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:285)
	at com.thoughtworks.xstream.io.xml.DomDriver.createReader(DomDriver.java:79) [xstream-1.3.1.jar:]
	... 47 more

14:17:10,310 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/CP].[default]] (http--127.0.0.1-8080-1) Servlet.service() for servlet default threw exception: com.thoughtworks.xstream.io.StreamException:  : Element type "org.joda.time.chrono.ISOChronology" must be followed by either attribute specifications, ">" or "/>".
	at com.thoughtworks.xstream.io.xml.DomDriver.createReader(DomDriver.java:86) [xstream-1.3.1.jar:]
	at com.thoughtworks.xstream.io.xml.DomDriver.createReader(DomDriver.java:70) [xstream-1.3.1.jar:]
	at com.thoughtworks.xstream.XStream.fromXML(XStream.java:861) [xstream-1.3.1.jar:]
	at br.com.caelum.vraptor.deserialization.XStreamXMLDeserializer.deserialize(XStreamXMLDeserializer.java:58) [vraptor-3.4.1.jar:]
	at br.com.caelum.vraptor.interceptor.DeserializingInterceptor.intercept(DeserializingInterceptor.java:87) [vraptor-3.4.1.jar:]
	at br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:59) [vraptor-3.4.1.jar:]
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54) [vraptor-3.4.1.jar:]
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56) [vraptor-3.4.1.jar:]
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54) [vraptor-3.4.1.jar:]
	at br.com.caelum.vraptor.interceptor.InstantiateInterceptor.intercept(InstantiateInterceptor.java:48) [vraptor-3.4.1.jar:]
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54) [vraptor-3.4.1.jar:]
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54) [vraptor-3.4.1.jar:]
	at br.com.caelum.vraptor.interceptor.ParametersInstantiatorInterceptor.intercept(ParametersInstantiatorInterceptor.java:93) [vraptor-3.4.1.jar:]
	at br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:59) [vraptor-3.4.1.jar:]
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54) [vraptor-3.4.1.jar:]
	at br.com.caelum.vraptor.interceptor.FlashInterceptor.intercept(FlashInterceptor.java:83) [vraptor-3.4.1.jar:]
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54) [vraptor-3.4.1.jar:]
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54) [vraptor-3.4.1.jar:]
	at br.com.caelum.vraptor.interceptor.ExceptionHandlerInterceptor.intercept(ExceptionHandlerInterceptor.java:71) [vraptor-3.4.1.jar:]
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54) [vraptor-3.4.1.jar:]
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54) [vraptor-3.4.1.jar:]
	at br.com.caelum.vraptor.interceptor.ResourceLookupInterceptor.intercept(ResourceLookupInterceptor.java:69) [vraptor-3.4.1.jar:]
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54) [vraptor-3.4.1.jar:]
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54) [vraptor-3.4.1.jar:]
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56) [vraptor-3.4.1.jar:]
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54) [vraptor-3.4.1.jar:]
	at br.com.caelum.vraptor.core.EnhancedRequestExecution.execute(EnhancedRequestExecution.java:44) [vraptor-3.4.1.jar:]
	at br.com.caelum.vraptor.VRaptor$1.insideRequest(VRaptor.java:91) [vraptor-3.4.1.jar:]
	at br.com.caelum.vraptor.ioc.spring.SpringProvider.provideForRequest(SpringProvider.java:58) [vraptor-3.4.1.jar:]
	at br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:88) [vraptor-3.4.1.jar:]
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:280) [jbossweb-7.0.10.Final.jar:]
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248) [jbossweb-7.0.10.Final.jar:]
	at com.opensymphony.sitemesh.webapp.SiteMeshFilter.obtainContent(SiteMeshFilter.java:129) [sitemesh-2.4.1.jar:]
	at com.opensymphony.sitemesh.webapp.SiteMeshFilter.doFilter(SiteMeshFilter.java:77) [sitemesh-2.4.1.jar:]
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:280) [jbossweb-7.0.10.Final.jar:]
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248) [jbossweb-7.0.10.Final.jar:]
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275) [jbossweb-7.0.10.Final.jar:]
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161) [jbossweb-7.0.10.Final.jar:]
	at org.jboss.as.jpa.interceptor.WebNonTxEmCloserValve.invoke(WebNonTxEmCloserValve.java:50) [jboss-as-jpa-7.1.0.Final.jar:7.1.0.Final]
	at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:154) [jboss-as-web-7.1.0.Final.jar:7.1.0.Final]
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:155) [jbossweb-7.0.10.Final.jar:]
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) [jbossweb-7.0.10.Final.jar:]
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) [jbossweb-7.0.10.Final.jar:]
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:368) [jbossweb-7.0.10.Final.jar:]
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877) [jbossweb-7.0.10.Final.jar:]
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:671) [jbossweb-7.0.10.Final.jar:]
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:930) [jbossweb-7.0.10.Final.jar:]
	at java.lang.Thread.run(Thread.java:722) [rt.jar:1.7.0_03]
Caused by: org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1782; Element type "org.joda.time.chrono.ISOChronology" must be followed by either attribute specifications, ">" or "/>".
	at org.apache.xerces.parsers.DOMParser.parse(DOMParser.java:244)
	at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:285)
	at com.thoughtworks.xstream.io.xml.DomDriver.createReader(DomDriver.java:79) [xstream-1.3.1.jar:]
	... 47 more

eu subscrevi o XStreamBuilder, na apl. web, ele passa por aqui quando estou debugando, eu coloquei o “ISO-8859-1”, porque estava dando : Invalid byte 2 of 4-byte UTF-8 sequence.

package br.com.coliseu.util;

import br.com.caelum.vraptor.deserialization.XStreamXMLDeserializer;
import br.com.caelum.vraptor.http.ParameterNameProvider;
import br.com.caelum.vraptor.ioc.Component;
import br.com.coliseu.model.Versaotabelas;

import com.thoughtworks.xstream.XStream;
import com.thoughtworks.xstream.io.xml.DomDriver;
@Component
public class XStreamBuilder extends XStreamXMLDeserializer {

	public XStreamBuilder(ParameterNameProvider provider, br.com.caelum.vraptor.serialization.xstream.XStreamBuilder builder) {
		super(provider, builder);
	}


/*	  Extension point to configure your xstream instance.
	  @return the configured xstream instance
*/
	 
	@Override
	protected XStream getXStream() {
		XStream xStream = new XStream(new DomDriver("ISO-8859-1"));
		xStream.processAnnotations(new Class[] {Versaotabelas.class});
		xStream.registerConverter(new LocalDateConverter());
		xStream.registerConverter(new LocalDateTimeConverter());
		return xStream;
	}

}

Apl. web:


	@Post
	@Path("atualizaatualizaItemPostItem")
	@Consumes("application/xml")
	public void atualizaItemPost(Versaotabelas versaotabelas) {

Apl. Desktop:


         Versaotabelas versaotabelas = respositoryVersaotabelas.dateItem(2);
         //versaotabelas.setDttimealter(null);
    
        Response responseData = restfulie.at("http://localhost:8080/CP/comunicador/atualizaatualizaItemPostItem")
                .accept("application/xml").as("application/xml").post(versaotabelas);

na api desktop vc tá registrando o converter das datas também?

Para registrar no desktop é dessa forma, igual ao de web

package br.com.coliseu.util;  
  
import br.com.caelum.vraptor.deserialization.XStreamXMLDeserializer;  
import br.com.caelum.vraptor.http.ParameterNameProvider;  
import br.com.caelum.vraptor.ioc.Component;  
import br.com.coliseu.model.Versaotabelas;  
  
import com.thoughtworks.xstream.XStream;  
import com.thoughtworks.xstream.io.xml.DomDriver;  
@Component  
public class XStreamBuilder extends XStreamXMLDeserializer {  
  
    public XStreamBuilder(ParameterNameProvider provider, br.com.caelum.vraptor.serialization.xstream.XStreamBuilder builder) {  
        super(provider, builder);  
    }  
  
  
/*    Extension point to configure your xstream instance. 
      @return the configured xstream instance 
*/  
       
    @Override  
    protected XStream getXStream() {  
        XStream xStream = new XStream(new DomDriver("ISO-8859-1"));  
        xStream.processAnnotations(new Class[] {Versaotabelas.class});  
        xStream.registerConverter(new LocalDateConverter());  
        xStream.registerConverter(new LocalDateTimeConverter());  
        return xStream;  
    }  
  
}

Eu registrei também aqui

        restfulie.getMediaTypes().register(new XmlMediaType().withTypes(Grupo.class, Produto.class, Item.class, Versaotabelas.class, LocalDateTimeConverter.class));

Mas continua dando:

lement type "org.joda.time.chrono.ISOChronology" must be followed by either attribute specifications, ">" or "/>".

15:26:28,193 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/CP]] (http--127.0.0.1-8080-1) Unhandled exception occurred whilst decorating page: com.thoughtworks.xstream.io.StreamException:  : Element type "org.joda.time.chrono.ISOChronology" must be followed by either attribute specifications, ">" or "/>".
	at com.thoughtworks.xstream.io.xml.DomDriver.createReader(DomDriver.java:86) [xstream-1.3.1.jar:]
	at com.thoughtworks.xstream.io.xml.DomDriver.createReader(DomDriver.java:70) [xstream-1.3.1.jar:]
	at com.thoughtworks.xstream.XStream.fromXML(XStream.java:861) [xstream-1.3.1.jar:]
....

não é assim que registra o converter no restfulie…

vc precisa customizar o xstream de dentro…

restfulie.getMediaTypes().register(new XmlMediaType() {
   {withTypes(Grupo.class, Produto.class, Item.class, Versaotabelas.class)}

   @Override
   protected void configure(XStream xstream) {
      //registre o cara aqui.
   }
});

Então fiz isso no Desktop:

        restfulie = Restfulie.custom();
        
        
        restfulie.getMediaTypes().register(new XmlMediaType() {  
            {withTypes(Grupo.class, Produto.class, Item.class, Versaotabelas.class);}  

            @Override  
            protected void configure(XStream xstream) {  
               //registre o cara aqui.  
                xstream.registerConverter(new LocalDateConverter());
		xstream.registerConverter(new LocalDateTimeConverter());
            }  
         });

ele chama o LocalDAteTimeConverter agora do desktop:

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.arena.resources;

import org.joda.time.LocalDateTime;
import org.joda.time.format.DateTimeFormat;

import com.thoughtworks.xstream.converters.basic.AbstractSingleValueConverter;

/**
 * Classe utilizada para converter datas
 * @author valde
 */
public class LocalDateTimeConverter extends AbstractSingleValueConverter {


	@Override
	public boolean canConvert(Class type) {
		return LocalDateTime.class.equals(type);
    }

    @Override
    public String toString(Object obj) {
        try {

        return DateTimeFormat.forPattern("dd/MM/yyyy HH:mm:ss").print((LocalDateTime) obj);
        } catch (Exception e) {
            return "ERRO";
        }

    }
    @Override
    public Object fromString(String string) {
        throw new UnsupportedOperationException("Not supported yet.");
    }

}

e chama a parte web.

passando aqui:

package br.com.coliseu.util;

import br.com.caelum.vraptor.deserialization.XStreamXMLDeserializer;
import br.com.caelum.vraptor.http.ParameterNameProvider;
import br.com.caelum.vraptor.ioc.Component;
import br.com.caelum.vraptor.serialization.xstream.XStreamBuilder;
import br.com.coliseu.model.Versaotabelas;

import com.thoughtworks.xstream.XStream;
import com.thoughtworks.xstream.io.xml.DomDriver;

@Component
public class CustomXStreamBuilder extends XStreamXMLDeserializer {

	/*  Extension point to configure your xstream instance.
	  @return the configured xstream instance*/

	 
	public CustomXStreamBuilder(ParameterNameProvider provider, XStreamBuilder builder) {
		super(provider, builder);
		// TODO Auto-generated constructor stub
	}

	@Override
	protected XStream getXStream() {
		XStream xStream = new XStream(new DomDriver("ISO-8859-1"));
		xStream.processAnnotations(new Class[] {Versaotabelas.class});
		xStream.registerConverter(new LocalDateConverter());
		xStream.registerConverter(new LocalDateTimeConverter());
		return xStream;
	}

}

daí dá esse erro:

17:58:21,557 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/CP]] (http--127.0.0.1-8080-1) Unhandled exception occurred whilst decorating page: com.thoughtworks.xstream.converters.ConversionException: Not supported yet. : Not supported yet.
---- Debugging information ----
message             : Not supported yet.
cause-exception     : java.lang.UnsupportedOperationException
cause-message       : Not supported yet.
class               : br.com.coliseu.model.Versaotabelas
required-type       : org.joda.time.LocalDateTime
path                : /versaotabelas/dttimealter
-------------------------------
	at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:89) [xstream-1.3.1.jar:]

...

deve ser por causa disso :wink:

@Override  
    public Object fromString(String string) {  
        throw new UnsupportedOperationException("Not supported yet.");  
    }  

Perfeito, foi falta de atenção minha, Valeu ai Lucas, tudo certo agora.

    @Override
    public Object fromString(String string) {
    	DateTimeFormatter fmt = DateTimeFormat.forPattern("dd/MM/yyyy HH:mm:ss");
    	return LocalDateTime.parse(string, fmt);

    }