1
resposta

Erro ao adicionar notações XML aos atributos das classes.

Ao inserir as notações @XmlJavaTypeAdapter @XmlElement Aos atributos, e tentar iniciar o servidor, recebo o erro :

EstoqueWS rodando: http://localhost:8080/estoquews Exception in thread "main" com.sun.xml.internal.ws.spi.db.DatabindingException: com.sun.xml.internal.bind.v2.runtime.IllegalAnnotationsException: 1 counts of IllegalAnnotationExceptions A classe tem duas propriedades do mesmo nome "dataValidade" this problem is related to the following location:

Percebi que ao retirar os gets e sets da função o erro desaparece. imagino que devo adicionar alguma notação as funcoes get e sets para remover este erro. Obrigado

Segue o codigo

public class TokenUsuario {
    @XmlElement(required = true)
    private String token;

    @XmlJavaTypeAdapter(DateAdapter.class)
    @XmlElement(required = true)
    private Date dataValidade;

    // JAX-B precisa desse construtor
    TokenUsuario() {
    }

    public TokenUsuario(String token, Date dataValidade) {
        this.token = token;
        this.dataValidade = dataValidade;
    }

    public String getToken() {
        return token;
    }

    public void setToken(String token) {
        this.token = token;
    }

    public Date getDataValidade() {
        return dataValidade;
    }

    public void setDataValidade(Date dataValidade) {
        this.dataValidade = dataValidade;
    }

    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + ((token == null) ? 0 : token.hashCode());
        return result;
    }

    @Override
    public boolean equals(Object obj) {
        if (this == obj)
            return true;
        if (obj == null)
            return false;
        if (getClass() != obj.getClass())
            return false;
        TokenUsuario other = (TokenUsuario) obj;
        if (token == null) {
            if (other.token != null)
                return false;
        } else if (!token.equals(other.token))
            return false;
        return true;
    }

    @Override
    public String toString() {
        return "TokenUsuario [token=" + token + ", dataValidade=" + dataValidade + "]";
    }
}
1 resposta
O post foi fechado por inatividade. Para continuar o assunto, recomendamos criar um novo tópico. Bons Estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software