Vraptor Serialização JSON com herança

Prezados,

estou tentando serializar uma classe B que estende da classe A.

Tudo acontece normalmente, porém no meu json só são recuperados campos da classe B, ou seja, campos da classe A não são serializados usando:

result.use(Results.json()).withoutRoot().from(objetoDaClasseA).serialize();

existe alguma maneira de fazer isso sem usar recursive()?

abrassss

Será que esse tópico ajuda ?

http://www.guj.com.br/java/254273-bug-serializacao-vraptor-34—heranca

a gente corrigiu isso já no VRaptor, mas não foi lançado ainda…

se quiser posso gerar um snapshot.

se puder e não for gerar mto trampo lucas, eu agradeço.

abrasss

se gerar, por favor me passa o link ou instruções de como baixar. abrasss

se vc não usa maven/ivy/gradle ou coisa do tipo:

https://oss.sonatype.org/content/repositories/snapshots/br/com/caelum/vraptor/3.4.1-SNAPSHOT/vraptor-3.4.1-20120229.150426-1.jar

se usa, adicione o repositório de snapshots
https://oss.sonatype.org/content/repositories/snapshots

br.com.caelum
vraptor
3.4.1-SNAPSHOT

[]'s

opa, obrigado lucas, estou com maven. Consegui baixar.

mas o problema persiste, Será que é porque estou herdando de uma classe abstrata?

edit:
mesmo com a classe pai concreta nao deu certo

abrassss

dá uma olhada no log de inicialização… ele apareceu como VRAptor 3.4.1-SNAPSHOT?

esse problema deveria estar corrigido…

esses campos da classe A que vc está falando, são primitivos (números, datas, String) ou são outras classes?

apareceu VRAptor 3.4.1-SNAPSHOT

sao outras classes, tipos que eu criei.

porém NÃO são coleções, deveriam ser serializadas ou estou enganado?

abrass

se são outras classes, o VRaptor não serializa por padrão mesmo, vc precisa dar includes nos atributos, ou usar o recursive();

por padrão só serializa números, datas e string.

Oi Lucas, esse comportamento de serializar primitivos da classe pai já funcionava antes mesmo do snapshot.

vc tem razao, está na doc, confundi, achei que ele não serializava apenas coleções.

então estou fazendo

result.use(Results.json()).withoutRoot().from(task).include("taskType").serialize();

apesar de ter a associação na minha class Task:

@ManyToOne
@NotNull
private TaskType taskType; //getter

recebo a exceção java.lang.IllegalArgumentException: Field path taskType doesn’t exist

estou cometendo algum erro?

abrasss

esse IllegalArgument foi corrigido no snapshot. Tinha um bug que não conseguia incluir campos da classe pai

Excelente. Foi corrigido mesmo.

Muito obrigado pela atenção.

Creio que faz sentido na serialização, serializar todos os atributos que não são collection.

Vou estudar como fazer isso e posto.

abrassss

[quote=Lucas Cavalcanti]se são outras classes, o VRaptor não serializa por padrão mesmo, vc precisa dar includes nos atributos, ou usar o recursive();

por padrão só serializa números, datas e string.[/quote]

Post antigo, mas tenho que comentar:

Puuutz Lucas tu salva minha vida sem saber!!! hauhauaua