Boa noite, tenho um método anotado com @Consumes para poder adicionar registro através de requisição Ajax com jquery, ocorre que realizo a chamada via ajax o registro é gravado no banco de dados porem o vraptor está retornando status 415 para minha página.
Método no controller
@Transactional
@Consumes(value = "application/json", options = WithoutRoot.class)
@Post("/listaespera/persistrest")
public void persistRest(ListaEspera listaespera) {
listaespera.setOperador(operador.getUsuario());
listaespera.setPsicologo(daoPsico.getById(Psicologo.class, listaespera.getPsicologo().getId()));
System.out.println("Lista Espera: " + listaespera.getNome());
validator.validate(listaespera);
validator.onErrorSendBadRequest();
if (listaespera.getId() == null) {
dao.persist(listaespera);
System.out.println("Salvando registro!");
} else {
dao.merge(listaespera);
}
System.out.println("Alterando status da requisição.");
result.use(Results.status()).created();
}
Function javascript
function persistRest() {
console.log("persistRest");
//
var dados = formToJSON("frm-listaespera", "");
console.log("Json: " + dados);
//
var URL = "http://localhost:8080/instituto-abc/listaespera/persistrest"
$.ajax({
url : URL,
type : "POST",
dataType : "json",
data : dados
}).done(function(response) {
console.log("Registro salvo com sucesso!" + response.responseText);
sweetAlert("sucess", "Sucesso", "Registro gravado no servidor!" + response.responseText);
}).fail(function(response) {
console.log("Erro ao realizar requisição ao servidor!" + response.responseText);
sweetAlert("error", "Erro requisição", "Status: " + response.status + " StatusText: " + response.statusText);
}).always(function() {
console.log("Requisição finalizada");
});
};
Meu Json
"{ "listaespera.id" : "1", "listaespera.nome" : "teste rest", "listaespera.psicologo.id" : "1", "listaespera.data" : "03/09/2019", "listaespera.celular" : "(44) 99999-8888", "listaespera.email" : "teste@gmail.com", "listaespera.tipo" : "1", "listaespera.observacao" : "Teste rest" }"
Transação Hibernate
19:28:27,714 INFO [stdout] (default task-65) Hibernate:
19:28:27,714 INFO [stdout] (default task-65) update
19:28:27,714 INFO [stdout] (default task-65) tb_listaespera
19:28:27,714 INFO [stdout] (default task-65) set
19:28:27,714 INFO [stdout] (default task-65) celular=?,
19:28:27,714 INFO [stdout] (default task-65) data=?,
19:28:27,714 INFO [stdout] (default task-65) dt_transacao=?,
19:28:27,714 INFO [stdout] (default task-65) email=?,
19:28:27,714 INFO [stdout] (default task-65) nome=?,
19:28:27,714 INFO [stdout] (default task-65) observacao=?,
19:28:27,714 INFO [stdout] (default task-65) id_operador=?,
19:28:27,715 INFO [stdout] (default task-65) id_psicologo=?,
19:28:27,715 INFO [stdout] (default task-65) tp_espera=?
19:28:27,715 INFO [stdout] (default task-65) where
19:28:27,715 INFO [stdout] (default task-65) id=?
Response
responseText: "<html><head><title>Error</title></head><body>Request with media type [application/x-www-form-urlencoded]. Expecting one of [application/json].</body></html>"
status: 415
statusText: "Unsupported Media Type"