Olá Pessoal,
Alguém saberia explicar o motivo do JAXB não realizar o unmarshal dos objetos "pai" que são parâmetros dos métodos do WS (@WebMethod), como por exemplo, a classe do livro do Capítulo 7 "SolicitarRelacaoDeAutores", quando estamos utilizando o sub-modelos de transporte WRAPPED? Nesse modelo percebi que o JAXB apenas faz unmarshal dos atributos das classes.
Utilizando o exemplo do cap 7 (soa-cap07-wsaddressing-servidor), temos:
@Override
@WebMethod(action = "AutoresService/SolicitarRelacaoDeAutores")
@WebResult(name = "autor", targetNamespace = "")
@Action(input = " ", output = "AutoresService/solicitarRelacaoDeAutoresResponse")
//@Addressing(enabled = true, required = true)
public List<Autor> solicitarRelacaoDeAutores(
@WebParam(name = "desde", targetNamespace = "") XMLGregorianCalendar desde) {
Autor alexandre = new Autor();
alexandre.setNome("Alexandre Saudate");
Autor adriano = new Autor();
adriano.setNome("Adriano Almeida");
Autor paulo = new Autor();
paulo.setNome("Paulo Silveira");
return new ArrayList<Autor>(Arrays.asList(alexandre, adriano, paulo));
}
Se no lugar do "XMLGregorianCalendar", for utilizando o objeto "SolicitarRelacaoDeAutores" que contém o "XMLGregorianCalendar desde", o objeto SolicitarRelacaoDeAutores continua sendo "null" após a requisição, ou seja, pelo que entendi ele não conseguiu fazer o unmarshall.
Obs: No modo BARE a conversão é realizada com sucesso e o objeto "SolicitarRelacaoDeAutores" é instanciado e todos os seus atributos são preenchidos.
Agradeço antecipadamente.
[]'s
--
-------------------------------------------------------------------------------
Diego Sousa de Azevedo
--------------------------------------------------------------------------------
"I like the impossible because there is less competition"
Walt Disney