RESTEasy - MessageBodyWriter не может найти ЛЮБОЙ Mediatype - PullRequest
0 голосов
/ 29 октября 2018

У меня проблема с Jboss и Resteasy. Я просто пытаюсь вернуть объект XML через службу REST. Проблема возникает в тот момент, когда метод пытается вернуть объект Response.

Jboss сообщает мне, что MessageBodyWriter не смог найти медиатип "application / xml" для любого типа объекта. Я пробовал другие типы носителей, такие как «application / json», «text / plain» и т. Д., И это выдает мне ту же ошибку. Я также пытался вернуть объект, не устанавливая его в Response, но я получаю ту же ошибку.

Кажется, что если jboss не видит провайдера JAXB, но почему? Для акларации: я не использую maven. У меня есть несколько библиотек в пути сборки, и я получаю доступ к ним через jboss-deploy-structure.xml, когда мне это нужно во время выполнения. Я знаю, что это работает, потому что так я загружаю "resteasy-jarxs".

Возвращаемый объект имеет аннотации JAXB. Я пробую несколько примеров из интернета, и это кажется невозможным.

Класс отдыха:

@Path("/user-management")
public class PruebaREST
{
    @GET
    @Path("/users/{id}")
    @Produces("application/xml")
    public Response getUserById(@PathParam("id") Integer id)
    {
        ObjetoPrueba user = new ObjetoPrueba();
        user.setId(id);
        user.setFirstName("aaaa");
        user.setLastName("bbbb"); 

        return Response.status(200).entity(user).build();
    }
} 

JBoss развертывания-structure.xml:

<dependencies>  
            ...
            ...
            ...
            ...
   <module name="org.jboss.resteasy.resteasy-jaxb-provider" export="true"/>
   <module name="org.jboss.resteasy.resteasy-jaxrs" export="true"/>
</dependencies>

Объект для возврата:

import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;

@XmlRootElement
public class ObjetoPrueba {

    private int id;

    private String firstName;

    private String lastName;

    @XmlAttribute
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }

    @XmlElement
    public String getFirstName() {
        return firstName;
    }
    public void setFirstName(String firstName) {
        this.firstName = firstName;
    }

    @XmlElement
    public String getLastName() {
        return lastName;
    }
    public void setLastName(String lastName) {
        this.lastName = lastName;
    }
}

И дружеская ошибка:

HTTP Status 500 - Could not find MessageBodyWriter for response object of type: net.bizkaia.u2bi000m.rest.ObjetoPrueba of media type: application/xml

Чего мне не хватает? Заранее спасибо.

...