-
Notifications
You must be signed in to change notification settings - Fork 328
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Controller generico #930
Comments
O problema está nesse método: A gente precisa adicionar um teste que reproduz essa sua situação e ver se esse método retorna a classe correta. Quer tentar fazer isso? |
Posso tentar sim, o que preciso fazer ? |
Entra nessa classe: https://github.com/caelum/vraptor4/blob/master/vraptor-core/src/test/java/br/com/caelum/vraptor/serialization/gson/GsonDeserializerTest.java copia os seus dois controllers pra um dos pacotes de teste, passa pro teste o método problemático, e vê se o deserializer usa o tipo certo. |
Não entendi muito bem como fazer isso que você pediu, comecei a usar o git agora. Pelo classe que você tinha passado coloquei um observer "@observes ControllerFound" e percebi que o parameterTypes do method quando utiliza parametro genérico no controller vem java.lang.Object e não o tipo setado ao instanciar a classe. |
ele vai vir como object mesmo, pq ele é o T. nesse caso, a gente tem que ver que o generic type do cara é do tipo TypeVariable, e pegar o tipo do T da classe do controller, não do método. Tem idéia do que eu to falando? Generics é bem zoado de fazer esse tipo de código, tem vários casos chatos o.o |
Sim isso eu imaginei, por isso que eu disse que talvez tenha de usar um interceptor ou mesmo um observer, assim como vi que esse cara fez http://www.guj.com.br/java/221981-vraptor-3--genericcontroller-resolvido mas pelo jeito não funciona mais assim no VRaptor 4. |
Não precisa chegar a tanto, só mudar aquele método que eu tinha linkado lá em cima já era o suficiente. Precisa corrigir ele pra retornar o tipo certo no seu caso. Por isso eu falei pra vc escrever um teste e mandar um Pull request pra corrigir isso no VRaptor =) |
Se puder me dizer um link onde ensina e fazer isso, pois como eu disse comecei a usar hoje o github apenas para tentar descobrir a solução para meu problema, desde já agradeço. |
Boa Noite. Atenciosamente https://www.facebook.com/clairton.rodrigo Em 28 de janeiro de 2015 19:26, jeancrbecker notifications@github.com
|
Consegui escrever o teste que reproduz o bug. Vou ver se consigo corrigir agora =) |
Criei lá o Pull Request, quer que gere uma versão snapshot pra vc assim que for aceito? o que dá pra fazer tb é vc copiar essa classe que mudou pro seu projeto, daí vai sobrescrever o componente padrão do VRaptor |
Legal Lucas, show de bola, copiei a classe para meu projeto e tudo funcionou perfeito, quando sair um novo snapshot me avisa que ja vou atualizar pra ficar com o projeto atualizado. Muito obrigado pela ajuda. |
@jeancrbecker Tá lá: Ou use a 4.2.0-SNAPSHOT no seu pom.xml ou coisa do tipo |
Galera alguem conseguiu criar um controller generico usando VRaptor 4.1 ? Quando utilizo metodos que recebem objetos como parametro ele não faz o reflection corretamente e acaba me retornando uma instancia de gson, agora quando incluo o tipo especifico da classe funciona sem problemas, ele apenas não reconhece quando é um tipo generico, precisaria fazer um interceptor ou um observer mas não tenho ideia de como implementar.
Minha controller generica:
Minha controller especializada
The text was updated successfully, but these errors were encountered: