Jersey MessageBodyProviderNotFoundException только для определенного POJO - PullRequest
0 голосов
/ 28 марта 2019

У меня есть следующая конечная точка

@GET
@Produces(MediaType.APPLICATION_JSON)
public MyUserDetails haeKayttajatiedot() {
    UserDetails details = (UserDetails) SecurityContextHolder.getContext().getAuthentication().getDetails();

    LOGGER.debug("IstuntoREST.haeKayttajatiedot user: " + details.getUsername());

    return new MyUserDetails(details);
}

И я получаю следующее исключение

MessageBodyProviderNotFoundException

Однако, возвращая другой объект домена, я не получаю ошибки.Вот доменный объект, который вызывает ошибку

@XmlRootElement
public class MyUserDetails implements UserDetails {

    @XmlTransient
    private static final long serialVersionUID = 1L;

    private String etunimi;
    private String sukunimi;

    @XmlTransient
    private UserDetails baseUserDetails;

    public MyUserDetails(UserDetails baseUserDetails) {
        this.baseUserDetails = baseUserDetails;
    }

    @XmlElement
    public String getEtunimi() {
        return etunimi;
    }

    public void setEtunimi(String etunimi) {
        this.etunimi = etunimi;
    }

    @XmlElement
    public String getSukunimi() {
        return sukunimi;
    }

    public void setSukunimi(String sukunimi) {
        this.sukunimi = sukunimi;
    }

    @Override
    @XmlElement
    public Collection<? extends GrantedAuthority> getAuthorities() {
        return baseUserDetails.getAuthorities();
    }

    @Override
    @XmlTransient
    public String getPassword() {
        return baseUserDetails.getPassword();
    }

    @Override
    @XmlElement
    public String getUsername() {
        return baseUserDetails.getUsername();
    }

    @Override
    @XmlElement
    public boolean isAccountNonExpired() {
        return baseUserDetails.isAccountNonExpired();
    }

    @Override
    @XmlElement
    public boolean isAccountNonLocked() {
        return baseUserDetails.isAccountNonLocked();
    }

    @Override
    @XmlElement
    public boolean isCredentialsNonExpired() {
        return baseUserDetails.isCredentialsNonExpired();
    }

    @Override
    @XmlElement
    public boolean isEnabled() {
        return baseUserDetails.isEnabled();
    }
}

Что не так?

...