Dae galera,
estou tendo alguns problemas com o DWR 3, e antes de cadastrar algum bug lá no site resolvi ver se alguém já passou por isso.
O problema é o seguinte: ao fazer uma chamada ajax com DWR passando um JSON através do jquery, o DWR não consegue
fazer o setterInjection no meu bean, já percebi que isso tá acontecendo por causa do formato JSON que está sendo passado, mas
não consegui resolver de jeito nenhum. segue o código abaixo seguindo do erro que aparece no console do tomcat.
//no lado do servidor esta classe é utilizada para escutar as requisições do DWR
public class FacadeAjax {
public String salvarContato(Contato contato) {
//...
}
}
na minha página tenho a chamada ajax, lembrando que agora no DWR 3 consigo fazer chamadas a urls normais.
...
//chamda através do jquery
submitHandler:function(form){
var contato = {id:null,nome:null,email:null,endereco:null,telefone:null};
dwr.util.getValues(contato);
$.post("/app/dwr/jsonp/FacadeAjax/salvarContato?param0=" + encodeURIComponent($.toJSON(contato)),{}, function(data){
//...
},"json");
}
...
param0:{"id":"","nome":"","email":"[email removido]","endereco":"","telefone":"000000000"}
o nome das propriedades estão entre aspas, isso acontece depois de fazer o encode com o plugin $.toJSON e no console do
tomcat dá pra ver claramente o que ocorre:
Ago 21, 2011 7:40:46 PM org.directwebremoting.convert.BasicObjectConverter createUsingSetterInjection
Advertência: Missing setter: br.ufpr.posees.agenda.entidades.Contato.set"nome"() to match javascript property: "nome". Check include/exclude rules and overloaded methods.
O pior que no próprio tutorial do DWR também parece estar com o mesmo erro. Será que tem como resolver ou deve ser um bug mesmo?