Problema com deserialização Vraptor + GAE [Resolvido]

Boa tarde , estou migrando um projeto pro cloud do google e tenho alguns serviços Rest rodando só que estou recebendo a seguinte exception quando tento deserializar um objeto vindo de outro server

java.lang.NoClassDefFoundError: sun.reflect.ReflectionFactory is a restricted class. Please see the Google  App Engine developer's guide for more details.
	at com.google.appengine.tools.development.agent.runtime.Runtime.reject(Runtime.java:51)
	at com.thoughtworks.xstream.converters.reflection.Sun14ReflectionProvider.getLazyRefectionFactory(Sun14ReflectionProvider.java:105)
	at com.thoughtworks.xstream.converters.reflection.Sun14ReflectionProvider.getMungedConstructor(Sun14ReflectionProvider.java:97)
	at com.thoughtworks.xstream.converters.reflection.Sun14ReflectionProvider.newInstance(Sun14ReflectionProvider.java:76)
	at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.instantiateNewInstance(AbstractReflectionConverter.java:313)
	at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshal(AbstractReflectionConverter.java:162)
	at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:82)
	at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:76)
	at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:60)
	at com.thoughtworks.xstream.core.TreeUnmarshaller.start(TreeUnmarshaller.java:137)
	at com.thoughtworks.xstream.core.AbstractTreeMarshallingStrategy.unmarshal(AbstractTreeMarshallingStrategy.java:33)
	at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:965)
	at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:950)
	at com.thoughtworks.xstream.XStream.fromXML(XStream.java:893)
	at br.com.caelum.vraptor.deserialization.XStreamXMLDeserializer.deserialize(XStreamXMLDeserializer.java:58)

O único reflection provider que o GAE suporta para o Xstream é o PureJavaReflectionProvider e o XStream usa acho por default o Sun14ReflectionProvider , como faço pra trocar o provider padrao , tentei extender br.com.caelum.vraptor.deserialization.XStreamXMLDeserializer mas nao vi modo de sobrescrever esse parametro , sofri o mesmo problema com o restfulie na hora de enviar o xml serializado ai tive que baixar o projeto e trocar o provider pra funcionar tb (até mandei o pull request pra suportar rodar o restfulie no GAE) . Há algum modo de fazer isso atraves de componente ou isso esta fixado nas entranhas do vraptor ??

vc precisa usar um build do xstream específico para o gae, removendo essas classes:

[quote=Lucas Cavalcanti]vc precisa usar um build do xstream específico para o gae, removendo essas classes:

Achei uma versao do xstream que funciona no GAE , chama xstream-gae.jar e parou de dar o problema.

Mas o lucas os jars que estão vindo no download lib\optional\gae estão cheio de problemas .

Atualmente tem :

  • gmultipart.jar
  • xstream-xstream-1.3.2-SNAPSHOT-GAE.jar (que não funciona)
  • falta o jar vraptor-gae.jar

Bom o ideal seria arrumar essas dependencias colocando uma vaersao do xstream que funciona de verdade na pasta e colocar o vraptor-gae.jar também que está faltando quando utiliza upload de arquivo, perde-se muito tempo quebrando cabeça com coisa boba que deveria funcionar de cara . No mais valew pela ajuda.

se puder, abre uma issue lá, por favor:

melhor ainda, se quiser implementar e mandar um pull request :wink:

[quote=Lucas Cavalcanti]se puder, abre uma issue lá, por favor:

melhor ainda, se quiser implementar e mandar um pull request ;)[/quote]

Te mandei o pull request com os ajustes . Abraços