У меня проблема с 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
Чего мне не хватает? Заранее спасибо.