Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

não percebi diferença no wsdl ao inserir o código abaixo

@XmlAccessorType(XmlAccessType.FIELD)
2 respostas
solução!

Oi Windson, tudo bem ?

Essa anotação é referente ao JAXB (Utilizado para serializar o objeto em xml), esta anotação tem objetivo de dizer como que sua classe sera serializada. Por exemplo.

Considere a seguinte classe:

@XmlAccessorType(XmlAccessType.FIELD)
public class Usuario {

    private String nome;
    private String senha;

    public String getNome(){
        return nome;
    }

    public String getSenha() {
        return senha;
    }
}

Como ela contém a anotação (@XmlAccessorType(XmlAccessType.FIELD)), todos os seus fields (atributos) serão serializados, gerando o seguinte xml.

<?xml version="1.0" encoding="UTF-8"?>
<usuario>
    <nome>Fulano</nome>
    <senha>SenhaDoFulano</senha>
</usuario>

Agora imagine que essa mesma classe estivesse da seguinte forma.

@XmlAccessorType(XmlAccessType.PUBLIC_MEMBER)
public class Usuario {

    private String nome;
    private String senha;

    public String getNome(){
        return nome;
    }
}

Repare que foi usada a anotação (@XmlAccessorType(XmlAccessType.PUBLIC_MEMBER)), essa anotação irá serializar somente os atributos e métodos públicos, a nossa classe, tem os atributos privados, e somente um método público o (GetNome), então o JAXB entende que só ele devera ser serializado, o xml ficará da seguinte forma:

<?xml version="1.0" encoding="UTF-8"?>
<usuario>
    <nome>Fulano</nome>
</usuario>

Existe também outros tipos de anotações, no qual você pode pesquisar mais a fundo. Mas respondendo sua pergunta, você não viu diferença porque quando a classe não tem anotação de @XmlAccessorType, o JAXB assume como padrão o @XmlAccessorType(XmlAccessType.FIELD).

Espero ter ajudado :)

Valeu