Olá pessoal, blz?
Eu estou fazendo um Ws que agiria como um intermediário entre uma aplicação e o banco de dados, e um dos primeiros testes éra chamar um método do Ws que receberia valores coletados à partir de uma tela da aplicação e deveria inseri-los no banco de dados, só que pro meu azar não ta tudo tão fácil quanto os tutoriais que tem por ae mostram.
Os dados são coletados em uma página JSP (apenas por conveniencia, mas futuramente páginas PHP, e talvez ASP irão utilizar o Ws), e são atributos distribuídos em 4 classes diferentes, sendo que uma destas pode ser chamada de classe “principal”, pq ela tem a instancia das outras 3 classes, e a idéia é usar JAXB para gerar um XML no formato:
...etcTodas as classes ja estão com as anotações do Jaxb e o XML do lado client está perfeito, e a chamada do Ws está sendo feita assim:
ClientResponse response = service.path("rest").path("atendimento")
.accept(MediaType.APPLICATION_XML)
.post(ClientResponse.class, atendimento);
atendimento é uma instancia da classe principal, este ponto os atributos já foram setados, o XML já foi exibido no console (porém não foi gerado nenhum arquivo efetivamente).
E desta forma está implementado no Ws:
@POST
@Consumes(MediaType.APPLICATION_XML)
public Response adicionarAtendimento(JAXBElement<Object> atendimento){
ResponseBuilder response;
atendimento.getValue();
Desta forma o que tem acontecido, é que o getValue do atendimento retorna um objeto com quase todos atributos nulos, ou zero no caso de atributos numéricos. Bem diferente do objeto passado como parametro pelo client. Curiosamente, uma dessas classes internas chega ao Ws com os valores atribuídos pelo client, mas não faço nem idéia do porque.
Alguem tem alguma idéia???
Fiz seguindo um tutorial que achei, mas reparei que no client embora as classes tenham as anotações do Jaxb, estou chamando o Ws passando mesmo uma instancia da classe, era pra ser assim mesmo? E quando for preciso chamar o Ws à partir de uma tela PHP ou .Net, não vai ser possível passar a instancia da classe também, qual a melhor forma de implementar este método???
Espero que alguem possa me ajudar, pois estou bem perdido nessa rsrsrs.
Obrigado!